Simon Hammer пре 4 година
родитељ
комит
6a00d26a72

+ 1 - 0
app/src/main/AndroidManifest.xml

@@ -19,6 +19,7 @@
                 <category android:name="android.intent.category.LAUNCHER" />
             </intent-filter>
         </activity>
+        <activity android:name=".ui.home.SettingsActivity"/>
     </application>
 
 </manifest>

+ 13 - 11
app/src/main/java/com/noahvogt/miniprojekt/MainActivity.java

@@ -1,5 +1,6 @@
 package com.noahvogt.miniprojekt;
 
+import android.content.Intent;
 import android.os.Bundle;
 
 import android.view.Menu;
@@ -22,6 +23,7 @@ import android.view.ViewGroup;
 
 import com.noahvogt.miniprojekt.ui.home.CustomAdapter;
 import com.noahvogt.miniprojekt.ui.home.Data;
+import com.noahvogt.miniprojekt.ui.home.SettingsActivity;
 import com.noahvogt.miniprojekt.ui.home.SettingsFragment;
 
 import androidx.recyclerview.widget.LinearLayoutManager;
@@ -66,17 +68,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);
 
-        //add setting Fragment
-        Button settings_button = (Button) findViewById(R.id.settingsButton);
-        settings_button.setOnClickListener(new View.OnClickListener(){
-            @Override
-            public void onClick(View v) {
-                getSupportFragmentManager()
-                        .beginTransaction()
-                        .replace(android.R.id.content, new SettingsFragment())
-                        .commit();
-            }
-        });
+
 
 
         // define button listeners
@@ -123,6 +115,16 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
         // Attach the adapter to the recyclerview to populate items
         recyclerView.setAdapter(adapter);
         recyclerView.setLayoutManager(new LinearLayoutManager(this));
+
+        //
+        Button settingButton = findViewById(R.id.settingsButton);
+        settingButton.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                Intent i = new Intent(MainActivity.this, SettingsActivity.class);
+                startActivity(i);
+            }
+        });
     }
 
 

+ 30 - 0
app/src/main/java/com/noahvogt/miniprojekt/ui/home/SettingsActivity.java

@@ -0,0 +1,30 @@
+package com.noahvogt.miniprojekt.ui.home;
+
+
+import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
+
+import com.noahvogt.miniprojekt.R;
+
+public class SettingsActivity extends AppCompatActivity {
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.activity_settings);
+
+        // below line is to change
+        // the title of our action bar.
+        getSupportActionBar().setTitle("Settings");
+
+        // below line is used to check if
+        // frame layout is empty or not.
+        if (findViewById(R.id.idFrameLayout) != null) {
+            if (savedInstanceState != null) {
+                return;
+            }
+            // below line is to inflate our fragment.
+            getSupportFragmentManager().beginTransaction().add(R.id.idFrameLayout, new SettingsFragment()).commit();
+        }
+    }
+}

+ 2 - 0
app/src/main/java/com/noahvogt/miniprojekt/ui/home/SettingsFragment.java

@@ -23,6 +23,8 @@ import androidx.appcompat.app.AlertDialog;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceFragmentCompat;
 
+
+
 import com.noahvogt.miniprojekt.R;
 
 public class SettingsFragment extends PreferenceFragmentCompat {

+ 13 - 0
app/src/main/res/layout/activity_settings.xml

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout 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="ui.home.SettingsActivity">
+
+    <FrameLayout
+        android:id="@+id/idFrameLayout"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>

+ 59 - 0
app/src/main/res/values/strings.xml

@@ -21,5 +21,64 @@
     <string name="date">22. Apr.</string>
 
 
+    <string name="remind_to_take_a_break">Remind me to take a break</string>
+    <string name="key_upload_quality">key_upload_quality</string>
+    <string name="remind_me">Remind me to take a break</string>
+    <string name="remind_me_for_bed_time">remind_me_for_bed_time</string>
+    <string name="remind_for_bed_time">Remind me for bed time</string>
+    <string name="limit_data_usage">prefs_limit_data_usage</string>
+    <string name="stream_video">Only stream HD video on Wi-Fi</string>
+    <string name="limit_mobile_usage">Limit mobile data usage</string>
+    <string name="double_tap_to_seek">Double-tap to seek</string>
+    <string name="pref_seek_val">pref_seek_val</string>
+    <string name="seconds">seconds</string>
+    <string name="uploads">Uploads</string>
+    <string name="pref_uploads">pref_uploads</string>
+    <string name="specify_network_prefs">Specify network preferences for uploads</string>
+    <string name="prefs_restricted_mode">prefs_restricted_mode</string>
+    <string name="restricated_mode">Restricted Mode can help to hide videos with potentially mature content.No filter is 100% accurate, but it should help you to avoid most of this type of content.</string>
+    <string name="restricated_mode_description">Restricted Mode</string>
+    <string name="prefs_enable_stats">prefs_enable_stats</string>
+    <string name="enable_stats">Enable stats for nerds</string>
+
+    <string-array name="pref_upload_quality_entries">
+        <item>360p</item>
+        <item>480p</item>
+        <item>720p</item>
+        <item>1080p</item>
+        <item>Original</item>
+    </string-array>
+
+    <string-array name="pref_remind_me_to_take_a_break">
+        <item>1 hours</item>
+        <item>2 hours</item>
+        <item>3 hours</item>
+        <item>5 hours</item>
+        <item>10 hours</item>
+    </string-array>
+
+    <string-array name="pref_seek_values">
+        <item>5</item>
+        <item>10</item>
+        <item>15</item>
+        <item>20</item>
+        <item>30</item>
+    </string-array>
+
+    <string-array name="pref_duration">
+        <item>0</item>
+        <item>1</item>
+        <item>2</item>
+        <item>3</item>
+        <item>4</item>
+    </string-array>
+
+    <string-array name="pref_uploads">
+        <item>Only when on Wi-Fi</item>
+        <item>On any network</item>
+    </string-array>
+
+
+
 </resources>
 

+ 56 - 9
app/src/main/res/xml/settings.xml

@@ -1,13 +1,60 @@
 <?xml version="1.0" encoding="utf-8"?>
-<androidx.preference.PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
+<PreferenceScreen
+    xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <SwitchPreferenceCompat
-        android:key="notifications"
-        android:title="Enable message notifications"/>
 
-    <Preference
-        android:key="feedback"
-        android:title="Send feedback"
-        android:summary="Report technical issues or suggest new features"/>
+    <PreferenceCategory android:title="General">
 
-</androidx.preference.PreferenceScreen>
+    <ListPreference
+        android:defaultValue="3"
+        android:dialogTitle="@string/remind_to_take_a_break"
+        android:entries="@array/pref_remind_me_to_take_a_break"
+        android:entryValues="@array/pref_duration"
+        android:key="@string/key_upload_quality"
+        android:summary="@string/remind_me"
+        android:title="@string/remind_me" />
+
+    <SwitchPreference
+        android:defaultValue="false"
+        android:key="@string/remind_me_for_bed_time"
+        android:title="@string/remind_for_bed_time" />
+
+    <SwitchPreference
+        android:defaultValue="false"
+        android:key="@string/limit_data_usage"
+        android:summary="@string/stream_video"
+        android:title="@string/limit_mobile_usage" />
+
+    <ListPreference
+        android:defaultValue="1"
+        android:dialogTitle="@string/double_tap_to_seek"
+        android:entries="@array/pref_seek_values"
+        android:entryValues="@array/pref_duration"
+        android:key="@string/pref_seek_val"
+        android:summary="@string/seconds"
+        android:title="@string/double_tap_to_seek" />
+
+
+    <ListPreference
+        android:defaultValue="1"
+        android:dialogTitle="@string/uploads"
+        android:entries="@array/pref_uploads"
+        android:entryValues="@array/pref_duration"
+        android:key="@string/pref_uploads"
+        android:summary="@string/specify_network_prefs"
+        android:title="Uploads" />
+
+    <SwitchPreference
+        android:defaultValue="false"
+        android:key="@string/prefs_restricted_mode"
+        android:summary="@string/restricated_mode"
+        android:title="@string/restricated_mode_description" />
+
+        <SwitchPreference
+            android:defaultValue="false"
+            android:key="@string/prefs_enable_stats"
+            android:title="@string/enable_stats" />
+
+    </PreferenceCategory>
+
+</PreferenceScreen>