Start of settings menu

This commit is contained in:
Tad 2018-10-21 19:58:27 -04:00
parent 2b8de41221
commit 6d5714cb79
14 changed files with 106 additions and 47 deletions

Binary file not shown.

View file

@ -35,4 +35,6 @@ dependencies {
implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:support-vector-drawable:26.1.0' implementation 'com.android.support:support-vector-drawable:26.1.0'
implementation 'com.android.support:support-v4:26.1.0' implementation 'com.android.support:support-v4:26.1.0'
implementation 'com.android.support:preference-v7:26.1.0'
} }

View file

@ -8,8 +8,6 @@ import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentManager;
import android.view.MenuItem; import android.view.MenuItem;
import java.util.Set;
public class MainActivity extends FragmentActivity { public class MainActivity extends FragmentActivity {
private final FragmentManager fragmentManager = getSupportFragmentManager(); private final FragmentManager fragmentManager = getSupportFragmentManager();

View file

@ -3,23 +3,25 @@ package us.spotco.malwarescanner;
import android.os.Bundle; import android.os.Bundle;
import android.support.v4.app.Fragment; import android.support.v4.app.Fragment;
import android.view.LayoutInflater; import android.support.v7.preference.PreferenceFragmentCompat;
import android.view.View;
import android.view.ViewGroup;
/** /**
* A simple {@link Fragment} subclass. * A simple {@link Fragment} subclass.
*/ */
public class SettingsFragment extends Fragment { public class SettingsFragment extends PreferenceFragmentCompat {
public SettingsFragment() { public SettingsFragment() {
} }
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public void onCreate(Bundle savedInstanceState) {
Bundle savedInstanceState) { super.onCreate(savedInstanceState);
return inflater.inflate(R.layout.fragment_settings, container, false); }
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.fragment_settings, rootKey);
} }
} }

View file

@ -1,12 +0,0 @@
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="us.spotco.malwarescanner.SettingsFragment">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/title_settings" />
</FrameLayout>

View file

@ -1,12 +1,31 @@
<resources> <resources>
<string name="app_name">Hypatia</string> <string name="app_name">Hypatia</string>
<!-- START MainActivity -->
<string name="title_activity_main">Hypatia</string> <string name="title_activity_main">Hypatia</string>
<string name="title_scanner">Scanner</string> <string name="title_scanner">Scanner</string>
<string name="title_log">History</string> <string name="title_log">History</string>
<string name="title_databases">Databases</string> <string name="title_databases">Databases</string>
<string name="title_settings">Settings</string> <string name="title_settings">Settings</string>
<!-- END MainActivity -->
<!-- TODO: Remove or change this placeholder text --> <!-- START SettingsFragment -->
<string name="hello_blank_fragment">Hello blank fragment</string> <string name="settings_category_scanner_realtime">Realtime Scanner</string>
<string name="settings_pref_scanner_realtime_path_system">Scan /system</string>
<string name="settings_pref_scanner_realtime_path_system_summary">Monitor system files</string>
<string name="settings_pref_scanner_realtime_path_internal">Scan Internal storage</string>
<string name="settings_pref_scanner_realtime_path_internal_summary">Monitor files on internal storage</string>
<string name="settings_pref_scanner_realtime_path_external">Scan External storage</string>
<string name="settings_pref_scanner_realtime_path_external_summary">Monitor files on external storage</string>
<string name="settings_category_optimizations">Optimizations</string>
<string name="settings_pref_optimizations_database_hash_length">Max hash length</string>
<string name="settings_pref_optimizations_database_hash_length_summary">Memory savings at risk of increased false positives</string>
<string name="settings_pref_optimizations_database_trim">Trim variant names</string>
<string name="settings_pref_optimizations_database_trim_summary">Memory savings at cost of detailed detection names</string>
<string name="settings_category_network">Network</string>
<string name="settings_pref_network_tor">Onion Routing</string>
<string name="settings_pref_network_tor_summary">Perform all network requests over Tor</string>
<!-- END SettingsFragment -->
</resources> </resources>

View file

@ -6,6 +6,7 @@
<item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style> </style>
<style name="AppTheme.NoActionBar"> <style name="AppTheme.NoActionBar">

View file

@ -0,0 +1,49 @@
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="us.spotco.malwarescanner.SettingsFragment">
<PreferenceCategory android:title="@string/settings_category_scanner_realtime">
<CheckBoxPreference
android:key="scanner_realtime_path_system"
android:title="@string/settings_pref_scanner_realtime_path_system"
android:summary="@string/settings_pref_scanner_realtime_path_system_summary"
android:defaultValue="false" />
<CheckBoxPreference
android:key="scanner_realtime_path_internal"
android:title="@string/settings_pref_scanner_realtime_path_internal"
android:summary="@string/settings_pref_scanner_realtime_path_internal_summary"
android:defaultValue="true" />
<CheckBoxPreference
android:key="scanner_realtime_path_external"
android:title="@string/settings_pref_scanner_realtime_path_external"
android:summary="@string/settings_pref_scanner_realtime_path_external_summary"
android:defaultValue="true" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_category_optimizations">
<EditTextPreference
android:key="database_hash_length"
android:title="@string/settings_pref_optimizations_database_hash_length"
android:summary="@string/settings_pref_optimizations_database_hash_length_summary"
android:defaultValue="12"
android:inputType="number" />
<CheckBoxPreference
android:key="database_trim_variants"
android:title="@string/settings_pref_optimizations_database_trim"
android:summary="@string/settings_pref_optimizations_database_trim_summary"
android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory android:title="@string/settings_category_network">
<CheckBoxPreference
android:key="network_use_tor"
android:title="@string/settings_pref_network_tor"
android:summary="@string/settings_pref_network_tor_summary"
android:defaultValue="false" />
</PreferenceCategory>
</PreferenceScreen>