diff options
23 files changed, 339 insertions, 277 deletions
diff --git a/app/build.gradle b/app/build.gradle index 8c18e06..8d94e2b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -80,6 +80,10 @@ android { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } + + aaptOptions { + additionalParameters '-I', 'app/libs/e-ui-sdk-1.0.1-q.jar' + } } dependencies { diff --git a/app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt b/app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt index dd6112d..fe61354 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/dummy/DummyDataSource.kt @@ -227,5 +227,4 @@ object DummyDataSource { _appsUsingLocationPerm.value = _populatedPermissions.value[permissionId].packagesAllowed } } - } diff --git a/app/src/main/java/foundation/e/privacycentralapp/dummy/TrackersDataSource.kt b/app/src/main/java/foundation/e/privacycentralapp/dummy/TrackersDataSource.kt index 9485a26..07822bb 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/dummy/TrackersDataSource.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/dummy/TrackersDataSource.kt @@ -82,12 +82,14 @@ object TrackersDataSource { if (result) { _trackers.value = _trackers.value.map { if (it.name == tracker.name) { - it.copy(trackedApps = it.trackedApps.map { app -> - app.copy(isEnabled = enable) - }) + it.copy( + trackedApps = it.trackedApps.map { app -> + app.copy(isEnabled = enable) + } + ) } else it } } return result } -}
\ No newline at end of file +} diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFeature.kt b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFeature.kt index a273b88..c26fce1 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFeature.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/dashboard/DashboardFeature.kt @@ -164,7 +164,7 @@ class DashboardFeature( var activeTrackersCount: Int = 0 outer@ for (tracker in it) { for (app in tracker.trackedApps) { - if(!app.isEnabled) { + if (!app.isEnabled) { continue@outer } } diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackerAppsAdapter.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackerAppsAdapter.kt index 04e3f04..ae236b9 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackerAppsAdapter.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackerAppsAdapter.kt @@ -43,8 +43,10 @@ class TrackerAppsAdapter( val view = LayoutInflater.from(parent.context) .inflate(R.layout.item_app_toggle, parent, false) val holder = TrackerViewHolder(view) - holder.toggleBlocker.setOnCheckedChangeListener { _, isChecked -> - listener(tracker, isChecked) + holder.toggleBlocker.setOnClickListener { + if (it is Switch) { + listener(tracker, it.isChecked) + } } return holder } diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackerAppsFragment.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackerAppsFragment.kt index 67ae0cc..53c26a9 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackerAppsFragment.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackerAppsFragment.kt @@ -18,8 +18,10 @@ package foundation.e.privacycentralapp.features.trackers import android.os.Bundle +import android.util.Log +import android.view.View import android.widget.Toast -import androidx.fragment.app.viewModels +import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -33,7 +35,9 @@ class TrackerAppsFragment : NavToolbarFragment(R.layout.fragment_tracker_apps), MVIView<TrackersFeature.State, TrackersFeature.Action> { - private val viewModel: TrackersViewModel by viewModels() + private val viewModel: TrackersViewModel by activityViewModels() + + private val TAG = "TrackerAppsFragment" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -44,6 +48,11 @@ class TrackerAppsFragment : viewModel.trackersFeature.singleEvents.collect { event -> when (event) { is TrackersFeature.SingleEvent.ErrorEvent -> displayToast(event.error) + is TrackersFeature.SingleEvent.BlockerErrorEvent -> { + displayToast("Couldn't toggle") + // Re-render the current state to reset the switches. + render(viewModel.trackersFeature.state.value) + } } } } @@ -56,19 +65,24 @@ class TrackerAppsFragment : override fun getTitle(): String = getString(R.string.tracker) + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + view.findViewById<RecyclerView>(R.id.recylcer_view_tracker_apps)?.apply { + layoutManager = LinearLayoutManager(requireContext()) + setHasFixedSize(true) + } + } + override fun render(state: TrackersFeature.State) { + Log.d(TAG, "render() called with: state = $state") state.currentSelectedTracker?.let { tracker -> - view?.findViewById<RecyclerView>(R.id.recylcer_view_tracker_apps)?.apply { - layoutManager = LinearLayoutManager(requireContext()) - setHasFixedSize(true) - adapter = TrackerAppsAdapter(tracker) { tracker, grant -> - viewModel.submitAction( - TrackersFeature.Action.ToggleTrackerAction( - tracker, - grant - ) + view?.findViewById<RecyclerView>(R.id.recylcer_view_tracker_apps)?.adapter = TrackerAppsAdapter(tracker) { it, grant -> + viewModel.submitAction( + TrackersFeature.Action.ToggleTrackerAction( + it, + grant ) - } + ) } getToolbar()?.title = tracker.name } diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFeature.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFeature.kt index f9fbf63..4a08328 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFeature.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFeature.kt @@ -40,7 +40,7 @@ class TrackersFeature( actor, reducer, coroutineScope, - { message -> Log.d("PermissionsFeature", message) }, + { message -> Log.d("TrackersFeature", message) }, singleEventProducer ) { data class State( @@ -112,7 +112,9 @@ class TrackersFeature( singleEventProducer = { _, _, effect -> when (effect) { is Effect.ErrorEffect -> SingleEvent.ErrorEvent(effect.message) - is Effect.TrackerToggleEffect -> SingleEvent.BlockerErrorEvent + is Effect.TrackerToggleEffect -> { + if (!effect.result) SingleEvent.BlockerErrorEvent else null + } else -> null } } diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt index d0242d3..00fefb6 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersFragment.kt @@ -19,9 +19,9 @@ package foundation.e.privacycentralapp.features.trackers import android.os.Bundle import android.view.View +import androidx.fragment.app.activityViewModels import androidx.fragment.app.add import androidx.fragment.app.commit -import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView @@ -34,7 +34,7 @@ class TrackersFragment : NavToolbarFragment(R.layout.fragment_trackers), MVIView<TrackersFeature.State, TrackersFeature.Action> { - private val viewModel: TrackersViewModel by viewModels() + private val viewModel: TrackersViewModel by activityViewModels() private lateinit var trackersAdapter: TrackersAdapter override fun onCreate(savedInstanceState: Bundle?) { @@ -59,9 +59,7 @@ class TrackersFragment : } } - override fun getTitle(): String { - return getString(R.string.trackers) - } + override fun getTitle() = getString(R.string.trackers) override fun render(state: TrackersFeature.State) { if (state.currentSelectedTracker != null) { diff --git a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersViewModel.kt b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersViewModel.kt index 79ae146..d75d6ec 100644 --- a/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersViewModel.kt +++ b/app/src/main/java/foundation/e/privacycentralapp/features/trackers/TrackersViewModel.kt @@ -37,4 +37,4 @@ class TrackersViewModel : ViewModel() { _actions.emit(action) } } -}
\ No newline at end of file +} diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 7013496..2627a32 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.fragment.app.FragmentContainerView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/container" - android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_width="match_parent" />
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_dashboard.xml b/app/src/main/res/layout/fragment_dashboard.xml index dc79878..effd992 100644 --- a/app/src/main/res/layout/fragment_dashboard.xml +++ b/app/src/main/res/layout/fragment_dashboard.xml @@ -2,46 +2,46 @@ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_width="match_parent" > - <include layout="@layout/topbar"/> + <include layout="@layout/topbar" /> <ProgressBar android:id="@+id/loadingSpinner" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center" android:indeterminate="true" + android:layout_gravity="center" + android:layout_height="wrap_content" + android:layout_width="wrap_content" /> <androidx.core.widget.NestedScrollView android:id="@+id/scrollContainer" - android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_width="match_parent" android:visibility="gone" app:layout_behavior="@string/appbar_scrolling_view_behavior" > <LinearLayout - android:layout_width="match_parent" - android:layout_height="match_parent" android:background="@color/white" android:gravity="center_horizontal" + android:layout_height="match_parent" + android:layout_width="match_parent" android:orientation="vertical" tools:context=".main.MainActivity" > <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" android:gravity="center" + android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" android:paddingLeft="32dp" - android:paddingTop="16dp" android:paddingRight="32dp" - android:paddingBottom="16dp" + android:paddingTop="16dp" android:text="@string/privacy_dashboard_info" android:textColor="@color/black" android:textSize="14sp" @@ -49,91 +49,91 @@ <ImageView android:id="@+id/togglePrivacyCentral" - android:layout_width="96dp" android:layout_height="96dp" - android:layout_marginTop="16dp" android:layout_marginBottom="16dp" + android:layout_marginTop="16dp" + android:layout_width="96dp" android:src="@drawable/ic_privacy_toggle" /> <TextView - android:id="@+id/tap_to_enable_quick_protection" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" android:drawableEnd="@drawable/ic_chevron_right_24dp" android:fontFamily="sans-serif-medium" android:gravity="center" + android:id="@+id/tap_to_enable_quick_protection" + android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" android:paddingLeft="32dp" - android:paddingTop="16dp" android:paddingRight="32dp" - android:paddingBottom="16dp" + android:paddingTop="16dp" android:text="@string/tap_to_enable_quick_protection" android:textColor="@color/black" android:textSize="14sp" /> <ImageView - android:layout_width="match_parent" android:layout_height="160dp" + android:layout_width="match_parent" android:src="@drawable/dummy_leakage_analytics" /> <TextView + android:gravity="center" android:id="@+id/personal_leakag_info" - android:layout_width="match_parent" - android:layout_height="wrap_content" android:layout_gravity="center_horizontal" - android:gravity="center" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" android:paddingLeft="32dp" android:paddingRight="32dp" - android:paddingBottom="16dp" android:text="@string/personal_leakage_info" android:textColor="@color/black" android:textSize="12sp" /> <LinearLayout - android:layout_width="match_parent" - android:layout_height="match_parent" android:background="#f9f9f9" + android:layout_height="match_parent" + android:layout_width="match_parent" android:orientation="vertical" > <RelativeLayout android:id="@+id/am_i_tracked" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" android:paddingLeft="32dp" - android:paddingTop="16dp" android:paddingRight="32dp" - android:paddingBottom="16dp" + android:paddingTop="16dp" > <ImageView android:id="@+id/am_i_tracked_icon" - android:layout_width="36dp" - android:layout_height="36dp" android:layout_alignParentStart="true" android:layout_centerVertical="true" + android:layout_height="36dp" + android:layout_width="36dp" android:src="@drawable/ic_tracked" /> <LinearLayout - android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_toStartOf="@+id/am_i_tracked_chevron" android:layout_toEndOf="@+id/am_i_tracked_icon" + android:layout_toStartOf="@+id/am_i_tracked_chevron" + android:layout_width="match_parent" android:orientation="vertical" - android:paddingStart="16dp" android:paddingEnd="32dp" + android:paddingStart="16dp" > <TextView + android:fontFamily="sans-serif-medium" android:id="@+id/am_i_tracked_title" - android:layout_width="match_parent" android:layout_height="wrap_content" - android:fontFamily="sans-serif-medium" + android:layout_width="match_parent" android:text="@string/am_i_tracked_title" android:textColor="@color/black" android:textSize="16sp" @@ -141,8 +141,8 @@ <TextView android:id="@+id/am_i_tracked_subtitle" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" android:text="@string/am_i_tracked_subtitle" android:textColor="@color/black" android:textSize="14sp" @@ -151,48 +151,48 @@ <ImageView android:id="@+id/am_i_tracked_chevron" - android:layout_width="24dp" - android:layout_height="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" + android:layout_height="24dp" + android:layout_width="24dp" android:src="@drawable/ic_chevron_right_24dp" /> </RelativeLayout> <RelativeLayout android:id="@+id/apps_permissions" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" android:paddingLeft="32dp" - android:paddingTop="16dp" android:paddingRight="32dp" - android:paddingBottom="16dp" + android:paddingTop="16dp" > <ImageView android:id="@+id/apps_permissions_icon" - android:layout_width="36dp" - android:layout_height="36dp" android:layout_alignParentStart="true" android:layout_centerVertical="true" + android:layout_height="36dp" + android:layout_width="36dp" android:src="@drawable/ic_apps_permissions" /> <LinearLayout - android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_toStartOf="@+id/apps_permissions_chevron" android:layout_toEndOf="@+id/apps_permissions_icon" + android:layout_toStartOf="@+id/apps_permissions_chevron" + android:layout_width="match_parent" android:orientation="vertical" - android:paddingStart="16dp" android:paddingEnd="32dp" + android:paddingStart="16dp" > <TextView + android:fontFamily="sans-serif-medium" android:id="@+id/apps_permissions_title" - android:layout_width="match_parent" android:layout_height="wrap_content" - android:fontFamily="sans-serif-medium" + android:layout_width="match_parent" android:text="@string/apps_permissions_title" android:textColor="@color/black" android:textSize="16sp" @@ -200,8 +200,8 @@ <TextView android:id="@+id/apps_permissions_subtitle" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" android:text="@string/apps_permissions_subtitle" android:textColor="@color/black" android:textSize="14sp" @@ -210,48 +210,48 @@ <ImageView android:id="@+id/apps_permissions_chevron" - android:layout_width="24dp" - android:layout_height="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" + android:layout_height="24dp" + android:layout_width="24dp" android:src="@drawable/ic_chevron_right_24dp" /> </RelativeLayout> <RelativeLayout android:id="@+id/my_location" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" android:paddingLeft="32dp" - android:paddingTop="16dp" android:paddingRight="32dp" - android:paddingBottom="16dp" + android:paddingTop="16dp" > <ImageView android:id="@+id/my_location_icon" - android:layout_width="36dp" - android:layout_height="36dp" android:layout_alignParentStart="true" android:layout_centerVertical="true" + android:layout_height="36dp" + android:layout_width="36dp" android:src="@drawable/ic_my_location" /> <LinearLayout - android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_toStartOf="@+id/my_location_chevron" android:layout_toEndOf="@+id/my_location_icon" + android:layout_toStartOf="@+id/my_location_chevron" + android:layout_width="match_parent" android:orientation="vertical" - android:paddingStart="16dp" android:paddingEnd="32dp" + android:paddingStart="16dp" > <TextView + android:fontFamily="sans-serif-medium" android:id="@+id/my_location_title" - android:layout_width="match_parent" android:layout_height="wrap_content" - android:fontFamily="sans-serif-medium" + android:layout_width="match_parent" android:text="@string/my_location_title" android:textColor="@color/black" android:textSize="16sp" @@ -259,8 +259,8 @@ <TextView android:id="@+id/my_location_subtitle" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" android:text="@string/my_location_subtitle" android:textColor="@color/black" android:textSize="14sp" @@ -269,48 +269,48 @@ <ImageView android:id="@+id/my_location_chevron" - android:layout_width="24dp" - android:layout_height="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" + android:layout_height="24dp" + android:layout_width="24dp" android:src="@drawable/ic_chevron_right_24dp" /> </RelativeLayout> <RelativeLayout android:id="@+id/internet_activity_privacy" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" android:paddingLeft="32dp" - android:paddingTop="16dp" android:paddingRight="32dp" - android:paddingBottom="16dp" + android:paddingTop="16dp" > <ImageView android:id="@+id/internet_activity_privacy_icon" - android:layout_width="36dp" - android:layout_height="36dp" android:layout_alignParentStart="true" android:layout_centerVertical="true" + android:layout_height="36dp" + android:layout_width="36dp" android:src="@drawable/ic_internet_activity" /> <LinearLayout - android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_toStartOf="@+id/internet_activity_privacy_chevron" android:layout_toEndOf="@+id/internet_activity_privacy_icon" + android:layout_toStartOf="@+id/internet_activity_privacy_chevron" + android:layout_width="match_parent" android:orientation="vertical" - android:paddingStart="16dp" android:paddingEnd="32dp" + android:paddingStart="16dp" > <TextView + android:fontFamily="sans-serif-medium" android:id="@+id/internet_activity_privacy_title" - android:layout_width="match_parent" android:layout_height="wrap_content" - android:fontFamily="sans-serif-medium" + android:layout_width="match_parent" android:text="@string/internet_activity_privacy_title" android:textColor="@color/black" android:textSize="16sp" @@ -318,8 +318,8 @@ <TextView android:id="@+id/internet_activity_privacy_subtitle" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" android:text="@string/internet_activity_privacy_subtitle" android:textColor="@color/black" android:textSize="14sp" @@ -328,10 +328,10 @@ <ImageView android:id="@+id/internet_activity_privacy_chevron" - android:layout_width="24dp" - android:layout_height="24dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" + android:layout_height="24dp" + android:layout_width="24dp" android:src="@drawable/ic_chevron_right_24dp" /> </RelativeLayout> diff --git a/app/src/main/res/layout/fragment_fake_location.xml b/app/src/main/res/layout/fragment_fake_location.xml index 40324a1..d60513b 100644 --- a/app/src/main/res/layout/fragment_fake_location.xml +++ b/app/src/main/res/layout/fragment_fake_location.xml @@ -8,7 +8,7 @@ android:layout_width="match_parent" > - <include layout="@layout/topbar"/> + <include layout="@layout/topbar" /> <androidx.core.widget.NestedScrollView android:layout_height="match_parent" @@ -18,9 +18,9 @@ <LinearLayout android:layout_height="match_parent" + android:layout_marginBottom="32dp" android:layout_width="match_parent" android:orientation="vertical" - android:layout_marginBottom="32dp" tools:context=".main.MainActivity" > @@ -29,9 +29,9 @@ android:layout_gravity="center_horizontal" android:layout_height="wrap_content" android:layout_width="match_parent" - android:paddingTop="16dp" android:paddingLeft="32dp" android:paddingRight="32dp" + android:paddingTop="16dp" android:text="@string/fake_location_info" android:textColor="@color/black" android:textSize="14sp" diff --git a/app/src/main/res/layout/fragment_internet_activity_policy.xml b/app/src/main/res/layout/fragment_internet_activity_policy.xml index 7a5d8b5..c3021df 100644 --- a/app/src/main/res/layout/fragment_internet_activity_policy.xml +++ b/app/src/main/res/layout/fragment_internet_activity_policy.xml @@ -2,23 +2,23 @@ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" android:background="@color/white" + android:layout_height="match_parent" + android:layout_width="match_parent" > - <include layout="@layout/topbar"/> + <include layout="@layout/topbar" /> <androidx.core.widget.NestedScrollView - android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="32dp" + android:layout_width="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" > <LinearLayout - android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_width="match_parent" android:orientation="vertical" android:paddingLeft="32dp" android:paddingRight="32dp" @@ -27,9 +27,9 @@ <TextView android:id="@+id/internet_activity_privacy_info" - android:layout_width="match_parent" - android:layout_height="wrap_content" android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" android:paddingTop="16dp" android:text="@string/internet_activity_privacy_info" android:textColor="@color/black" @@ -37,23 +37,23 @@ /> <TextView - android:id="@+id/learn_more_internet_activity_privacy_info" - android:layout_width="wrap_content" - android:layout_height="48dp" android:fontFamily="sans-serif-medium" android:gravity="center_vertical" + android:id="@+id/learn_more_internet_activity_privacy_info" + android:layout_height="48dp" + android:layout_width="wrap_content" android:text="@string/learn_more" android:textColor="#007fff" android:textSize="14sp" /> <TextView + android:fontFamily="sans-serif-medium" android:id="@+id/my_internet_activity_header" - android:layout_width="wrap_content" android:layout_height="wrap_content" - android:fontFamily="sans-serif-medium" - android:paddingTop="16dp" + android:layout_width="wrap_content" android:paddingBottom="8dp" + android:paddingTop="16dp" android:text="@string/internet_activity_privacy_title" android:textColor="@color/black" android:textSize="14sp" @@ -61,37 +61,41 @@ <RadioGroup android:id="@+id/internet_activity_privacy_choices" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" android:orientation="vertical" > <foundation.e.privacycentralapp.common.RightRadioButton android:id="@+id/radio_use_real_ip" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_width="match_parent" android:text="@string/use_real_ip" android:textSize="16sp" /> + <TextView - android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_width="wrap_content" android:text="@string/i_can_be_tracked" - android:textSize="14sp"/> + android:textSize="14sp" + /> <foundation.e.privacycentralapp.common.RightRadioButton android:id="@+id/radio_use_hidden_ip" - android:layout_width="match_parent" android:layout_height="wrap_content" + android:layout_marginTop="8dp" + android:layout_width="match_parent" android:text="@string/hidden_ip" android:textSize="16sp" - android:layout_marginTop="8dp" /> + <TextView - android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_width="wrap_content" android:text="@string/i_am_anonymous" - android:textSize="14sp"/> + android:textSize="14sp" + /> </RadioGroup> </LinearLayout> </androidx.core.widget.NestedScrollView> diff --git a/app/src/main/res/layout/fragment_permission_apps.xml b/app/src/main/res/layout/fragment_permission_apps.xml index 760c891..db61e93 100644 --- a/app/src/main/res/layout/fragment_permission_apps.xml +++ b/app/src/main/res/layout/fragment_permission_apps.xml @@ -2,37 +2,45 @@ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" android:background="@color/white" + android:layout_height="match_parent" + android:layout_width="match_parent" > - <include layout="@layout/topbar"/> + <include layout="@layout/topbar" /> - <LinearLayout - android:layout_width="match_parent" + <androidx.core.widget.NestedScrollView android:layout_height="match_parent" - android:orientation="vertical" - tools:context=".main.MainActivity" + android:layout_width="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" > - <TextView - android:id="@+id/permission_control" + <LinearLayout + android:layout_height="match_parent" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:paddingTop="16dp" - android:paddingBottom="16dp" - android:paddingLeft="32dp" - android:paddingRight="32dp" - android:textColor="@color/black" - android:textSize="14sp" - /> + android:orientation="vertical" + tools:context=".main.MainActivity" + > - <androidx.recyclerview.widget.RecyclerView - android:layout_width="match_parent" - android:layout_height="match_parent" - tools:listitem="@layout/item_app_toggle" - android:id="@+id/recylcer_view_permission_apps"/> - </LinearLayout> + <TextView + android:id="@+id/permission_control" + android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" + android:paddingLeft="32dp" + android:paddingRight="32dp" + android:paddingTop="16dp" + android:textColor="@color/black" + android:textSize="14sp" + /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recylcer_view_permission_apps" + android:layout_height="match_parent" + android:layout_width="match_parent" + tools:listitem="@layout/item_app_toggle" + /> + </LinearLayout> + </androidx.core.widget.NestedScrollView> </androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_permissions.xml b/app/src/main/res/layout/fragment_permissions.xml index a452570..7ca4b43 100644 --- a/app/src/main/res/layout/fragment_permissions.xml +++ b/app/src/main/res/layout/fragment_permissions.xml @@ -2,16 +2,22 @@ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" android:background="@color/white" + android:layout_height="match_parent" + android:layout_width="match_parent" > - <include layout="@layout/topbar"/> + <include layout="@layout/topbar" /> + + <androidx.core.widget.NestedScrollView + android:layout_height="match_parent" + android:layout_width="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" + > <LinearLayout - android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_width="match_parent" android:orientation="vertical" android:paddingLeft="32dp" android:paddingRight="32dp" @@ -20,9 +26,9 @@ <TextView android:id="@+id/permission_control" - android:layout_width="match_parent" - android:layout_height="wrap_content" android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" android:paddingTop="16dp" android:text="@string/permission_control_info" android:textColor="@color/black" @@ -30,20 +36,22 @@ /> <TextView - android:id="@+id/learn_more_permissions" - android:layout_width="wrap_content" - android:layout_height="48dp" android:fontFamily="sans-serif-medium" android:gravity="center_vertical" + android:id="@+id/learn_more_permissions" + android:layout_height="48dp" + android:layout_width="wrap_content" android:text="@string/learn_more" android:textColor="#007fff" android:textSize="14sp" /> <androidx.recyclerview.widget.RecyclerView - android:layout_width="match_parent" + android:id="@+id/recylcer_view_permissions" android:layout_height="match_parent" + android:layout_width="match_parent" tools:listitem="@layout/item_permission" - android:id="@+id/recylcer_view_permissions"/> + /> </LinearLayout> + </androidx.core.widget.NestedScrollView> </androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_quick_protection.xml b/app/src/main/res/layout/fragment_quick_protection.xml index d57a101..569f9b1 100644 --- a/app/src/main/res/layout/fragment_quick_protection.xml +++ b/app/src/main/res/layout/fragment_quick_protection.xml @@ -1,59 +1,70 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" android:background="@color/white" + android:layout_height="match_parent" + android:layout_width="match_parent" > - <include layout="@layout/topbar"/> + <include layout="@layout/topbar" /> - <LinearLayout - android:layout_width="match_parent" + <androidx.core.widget.NestedScrollView android:layout_height="match_parent" - android:orientation="vertical" - android:layout_marginBottom="56dp" - tools:context=".main.MainActivity" + android:layout_width="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" > - <TextView - android:id="@+id/quick_protection_info" + <LinearLayout + android:layout_height="match_parent" + android:layout_marginBottom="56dp" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:paddingLeft="32dp" - android:paddingRight="32dp" - android:paddingTop="16dp" - android:text="@string/quick_protection_info" - android:textColor="@color/black" - android:textSize="14sp" - /> + android:orientation="vertical" + tools:context=".main.MainActivity" + > + + <TextView + android:id="@+id/quick_protection_info" + android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingLeft="32dp" + android:paddingRight="32dp" + android:paddingTop="16dp" + android:text="@string/quick_protection_info" + android:textColor="@color/black" + android:textSize="14sp" + /> + + <TextView + android:fontFamily="sans-serif-medium" + android:id="@+id/quick_protection_settings_list" + android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" + android:paddingLeft="32dp" + android:paddingRight="32dp" + android:paddingTop="16dp" + android:text="@string/quick_protection_settings_list" + android:textColor="@color/black" + android:textSize="14sp" + /> + </LinearLayout> + + </androidx.core.widget.NestedScrollView> - <TextView - android:id="@+id/quick_protection_settings_list" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:paddingTop="16dp" - android:paddingBottom="16dp" - android:paddingLeft="32dp" - android:paddingRight="32dp" - android:fontFamily="sans-serif-medium" - android:text="@string/quick_protection_settings_list" - android:textColor="@color/black" - android:textSize="14sp" - /> - </LinearLayout> <TextView - android:layout_width="wrap_content" + android:fontFamily="sans-serif-medium" + android:gravity="center_vertical|end" + android:id="@+id/learn_more" + android:layout_gravity="bottom|end" android:layout_height="56dp" - android:paddingRight="32dp" + android:layout_width="wrap_content" android:paddingLeft="32dp" - android:gravity="center_vertical|right" - android:id="@+id/learn_more" + android:paddingRight="32dp" android:text="@string/learn_more" android:textColor="#007fff" android:textSize="14sp" - android:fontFamily="sans-serif-medium" - android:layout_gravity="bottom|right"/> + /> </androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_tracker_apps.xml b/app/src/main/res/layout/fragment_tracker_apps.xml index bb31b5b..3341d95 100644 --- a/app/src/main/res/layout/fragment_tracker_apps.xml +++ b/app/src/main/res/layout/fragment_tracker_apps.xml @@ -2,37 +2,45 @@ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" android:background="@color/white" + android:layout_height="match_parent" + android:layout_width="match_parent" > - <include layout="@layout/topbar"/> + <include layout="@layout/topbar" /> - <LinearLayout - android:layout_width="match_parent" + <androidx.core.widget.NestedScrollView android:layout_height="match_parent" - android:orientation="vertical" - tools:context=".main.MainActivity" + android:layout_width="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" > - <TextView + <LinearLayout + android:layout_height="match_parent" android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_gravity="center_horizontal" - android:paddingTop="16dp" - android:paddingBottom="16dp" - android:paddingLeft="32dp" - android:paddingRight="32dp" - android:text="@string/enable_disable_tracker_info" - android:textColor="@color/black" - android:textSize="14sp" - /> + android:orientation="vertical" + tools:context=".main.MainActivity" + > - <androidx.recyclerview.widget.RecyclerView - android:layout_width="match_parent" - android:layout_height="match_parent" - tools:listitem="@layout/item_app_toggle" - android:id="@+id/recylcer_view_tracker_apps"/> - </LinearLayout> + <TextView + android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" + android:paddingBottom="16dp" + android:paddingLeft="32dp" + android:paddingRight="32dp" + android:paddingTop="16dp" + android:text="@string/enable_disable_tracker_info" + android:textColor="@color/black" + android:textSize="14sp" + /> + + <androidx.recyclerview.widget.RecyclerView + android:id="@+id/recylcer_view_tracker_apps" + android:layout_height="match_parent" + android:layout_width="match_parent" + tools:listitem="@layout/item_app_toggle" + /> + </LinearLayout> + </androidx.core.widget.NestedScrollView> </androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/fragment_trackers.xml b/app/src/main/res/layout/fragment_trackers.xml index 13fcab3..591b2b6 100644 --- a/app/src/main/res/layout/fragment_trackers.xml +++ b/app/src/main/res/layout/fragment_trackers.xml @@ -2,23 +2,23 @@ <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent" android:background="@color/white" + android:layout_height="match_parent" + android:layout_width="match_parent" > - <include layout="@layout/topbar"/> + <include layout="@layout/topbar" /> <androidx.core.widget.NestedScrollView - android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="32dp" + android:layout_width="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" > <LinearLayout - android:layout_width="match_parent" android:layout_height="match_parent" + android:layout_width="match_parent" android:orientation="vertical" android:paddingLeft="32dp" android:paddingRight="32dp" @@ -27,9 +27,9 @@ <TextView android:id="@+id/trackers_info" - android:layout_width="match_parent" - android:layout_height="wrap_content" android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" android:paddingTop="16dp" android:text="@string/manage_trackers_info" android:textColor="@color/black" @@ -37,11 +37,11 @@ /> <TextView - android:id="@+id/learn_more_trackers_info" - android:layout_width="wrap_content" - android:layout_height="48dp" android:fontFamily="sans-serif-medium" android:gravity="center_vertical" + android:id="@+id/learn_more_trackers_info" + android:layout_height="48dp" + android:layout_width="wrap_content" android:text="@string/learn_more" android:textColor="#007fff" android:textSize="14sp" @@ -55,19 +55,21 @@ /> <TextView - android:layout_width="match_parent" - android:layout_height="wrap_content" android:layout_gravity="center_horizontal" + android:layout_height="wrap_content" + android:layout_width="match_parent" android:paddingTop="16dp" android:text="@string/following_trackers_in_use" android:textColor="@color/black" android:textSize="16sp" /> + <androidx.recyclerview.widget.RecyclerView - android:layout_width="match_parent" + android:id="@+id/recylcer_view_trackers" android:layout_height="match_parent" + android:layout_width="match_parent" tools:listitem="@layout/item_list_tracker" - android:id="@+id/recylcer_view_trackers"/> + /> </LinearLayout> </androidx.core.widget.NestedScrollView> </androidx.coordinatorlayout.widget.CoordinatorLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/item_app_toggle.xml b/app/src/main/res/layout/item_app_toggle.xml index 7d02ec0..d0f565f 100644 --- a/app/src/main/res/layout/item_app_toggle.xml +++ b/app/src/main/res/layout/item_app_toggle.xml @@ -2,33 +2,33 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/item_permission_apps" - android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="16dp" + android:layout_width="match_parent" android:paddingBottom="16dp" android:paddingLeft="32dp" android:paddingRight="32dp" + android:paddingTop="16dp" > <ImageView android:id="@+id/app_icon" - android:layout_width="36dp" - android:layout_height="36dp" android:layout_alignParentStart="true" android:layout_centerVertical="true" + android:layout_height="36dp" + android:layout_width="36dp" android:src="@drawable/ic_facebook" /> <TextView + android:fontFamily="sans-serif-medium" android:id="@+id/app_title" - android:layout_width="match_parent" - android:layout_height="wrap_content" android:layout_centerVertical="true" - android:layout_toStartOf="@+id/toggle" + android:layout_height="wrap_content" android:layout_toEndOf="@+id/app_icon" - android:fontFamily="sans-serif-medium" - android:paddingStart="32dp" + android:layout_toStartOf="@+id/toggle" + android:layout_width="match_parent" android:paddingEnd="32dp" + android:paddingStart="32dp" android:textColor="@color/black" android:textSize="16sp" tools:text="Body sensor" @@ -36,9 +36,9 @@ <Switch android:id="@+id/toggle" - android:layout_width="wrap_content" - android:layout_height="wrap_content" android:layout_alignParentEnd="true" android:layout_centerVertical="true" + android:layout_height="wrap_content" + android:layout_width="wrap_content" /> </RelativeLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/item_permission.xml b/app/src/main/res/layout/item_permission.xml index 8f54f64..66d4213 100644 --- a/app/src/main/res/layout/item_permission.xml +++ b/app/src/main/res/layout/item_permission.xml @@ -17,57 +17,57 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/item_permission" - android:layout_width="match_parent" android:layout_height="wrap_content" - android:paddingTop="16dp" + android:layout_width="match_parent" android:paddingBottom="16dp" + android:paddingTop="16dp" > <ImageView android:id="@+id/permission_icon" - android:layout_width="24dp" - android:layout_height="24dp" android:layout_alignParentStart="true" android:layout_centerVertical="true" + android:layout_height="24dp" + android:layout_width="24dp" android:src="@drawable/ic_body_monitor" /> <LinearLayout - android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_toStartOf="@+id/chevron" android:layout_toEndOf="@+id/permission_icon" + android:layout_toStartOf="@+id/chevron" + android:layout_width="match_parent" android:orientation="vertical" - android:paddingStart="32dp" android:paddingEnd="32dp" + android:paddingStart="32dp" > <TextView + android:fontFamily="sans-serif-medium" android:id="@+id/permission_title" - android:layout_width="match_parent" android:layout_height="wrap_content" - android:fontFamily="sans-serif-medium" - tools:text="Body sensor" + android:layout_width="match_parent" android:textColor="@color/black" android:textSize="16sp" + tools:text="Body sensor" /> <TextView android:id="@+id/permission_count" - android:layout_width="match_parent" android:layout_height="wrap_content" - tools:text="3 of 8 apps allowed" + android:layout_width="match_parent" android:textSize="14sp" + tools:text="3 of 8 apps allowed" /> </LinearLayout> <ImageView android:id="@+id/chevron" - android:layout_width="24dp" - android:layout_height="24dp" - android:padding="4dp" android:layout_alignParentEnd="true" android:layout_centerVertical="true" + android:layout_height="24dp" + android:layout_width="24dp" + android:padding="4dp" android:src="@drawable/ic_chevron_right_24dp" /> </RelativeLayout>
\ No newline at end of file diff --git a/app/src/main/res/layout/topbar.xml b/app/src/main/res/layout/topbar.xml index 9142d79..a493b3b 100644 --- a/app/src/main/res/layout/topbar.xml +++ b/app/src/main/res/layout/topbar.xml @@ -18,20 +18,20 @@ --> <com.google.android.material.appbar.AppBarLayout xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_height="wrap_content" android:layout_width="match_parent" - xmlns:app="http://schemas.android.com/apk/res-auto" app:elevation="0dp" > <com.google.android.material.appbar.MaterialToolbar android:background="@color/white" - android:id="@+id/toolbar" - app:titleCentered="true" android:elevation="0dp" + android:id="@+id/toolbar" android:layout_height="?android:attr/actionBarSize" android:layout_width="match_parent" + app:titleCentered="true" tools:layout_height="56dp" /> </com.google.android.material.appbar.AppBarLayout> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index eb799d1..3105ddb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -42,7 +42,7 @@ <string name="quick_protection">Quick Protection</string> <string name="privacy_dashboard">Privacy Dashboard</string> <string name="click_to_learn_more">Click to learn more</string> - <string name="apps_permissions">\"Apps Permission\"</string> + <string name="apps_permissions">Apps Permission</string> <string name="trackers">Trackers</string> <string name="manage_trackers_info">See trackers usage over time and manage trackers available in applications</string> <string name="following_trackers_in_use">Following trackers are in use</string> diff --git a/scripts/sign_and_push.sh b/scripts/sign_and_push.sh index dd37f2a..035a47b 100755 --- a/scripts/sign_and_push.sh +++ b/scripts/sign_and_push.sh @@ -10,7 +10,7 @@ adb root wait ${!} adb devices wait ${!} -adb install -r build/outputs/apk/e/debug/PrivacyCentral-e-debug-1.0.0-alpha.apk +adb install -r app/build/outputs/apk/e/debug/PrivacyCentral-e-debug-1.0.0-alpha.apk wait ${!} adb remount && adb push privapp-permissions-foundation.e.privacycentralapp.xml system/etc/permissions wait ${!} |