Skip to content

Commit 0385159

Browse files
committed
WIP
1 parent 419c4ee commit 0385159

31 files changed

+229
-126
lines changed

play-services-base/core/src/main/res/layout/preference_app_heading.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
android:layout_width="match_parent"
1212
android:layout_height="wrap_content"
1313
android:layout_marginStart="?attr/listPreferredItemPaddingStart"
14-
android:layout_marginTop="24dp"
1514
android:layout_marginEnd="?attr/listPreferredItemPaddingEnd"
1615
android:layout_marginBottom="24dp"
1716
android:clickable="true"

play-services-core/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractAboutFragment.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
import android.content.pm.PackageManager;
2121
import android.graphics.drawable.Drawable;
2222
import android.os.Bundle;
23-
import android.os.Handler;
2423
import android.text.TextUtils;
2524
import android.view.LayoutInflater;
2625
import android.view.View;
@@ -31,6 +30,7 @@
3130
import android.widget.LinearLayout;
3231
import android.widget.TextView;
3332

33+
import androidx.annotation.NonNull;
3434
import androidx.annotation.Nullable;
3535
import androidx.fragment.app.Fragment;
3636

@@ -43,6 +43,7 @@
4343
import java.util.Collections;
4444
import java.util.List;
4545
import java.util.Locale;
46+
import java.util.Objects;
4647

4748
public abstract class AbstractAboutFragment extends Fragment {
4849

@@ -71,7 +72,7 @@ public static String getAppName(Context context) {
7172
}
7273

7374
protected String getAppName() {
74-
return getAppName(getContext());
75+
return getAppName(requireContext());
7576
}
7677

7778
public static String getLibVersion(String packageName) {
@@ -94,7 +95,7 @@ public void onCreate(Bundle savedInstanceState) {
9495
}
9596

9697
@Override
97-
public void onViewCreated(View view, Bundle savedInstanceState) {
98+
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
9899
super.onViewCreated(view, savedInstanceState);
99100
view.setBackgroundColor(MaterialColors.getColor(view, android.R.attr.colorBackground));
100101
}
@@ -116,7 +117,7 @@ protected String getSummary() {
116117
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
117118
View aboutRoot = inflater.inflate(R.layout.about_root, container, false);
118119

119-
((ImageView) aboutRoot.findViewById(android.R.id.icon)).setImageDrawable(getIcon(getContext()));
120+
((ImageView) aboutRoot.findViewById(android.R.id.icon)).setImageDrawable(getIcon(requireContext()));
120121
((TextView) aboutRoot.findViewById(android.R.id.title)).setText(getAppName());
121122
((TextView) aboutRoot.findViewById(R.id.about_version)).setText(getString(R.string.about_version_str, getSelfVersion()));
122123

@@ -153,11 +154,12 @@ public LibraryAdapter(Context context, Library[] libraries) {
153154
super(context, android.R.layout.simple_list_item_2, android.R.id.text1, libraries);
154155
}
155156

157+
@NonNull
156158
@Override
157-
public View getView(int position, View convertView, ViewGroup parent) {
159+
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
158160
View v = super.getView(position, convertView, parent);
159-
((TextView) v.findViewById(android.R.id.text1)).setText(getString(R.string.about_name_version_str, getItem(position).name, getLibVersion(getItem(position).packageName)));
160-
((TextView) v.findViewById(android.R.id.text2)).setText(getItem(position).copyright != null ? getItem(position).copyright : getString(R.string.about_default_license));
161+
((TextView) v.findViewById(android.R.id.text1)).setText(getString(R.string.about_name_version_str, Objects.requireNonNull(getItem(position)).name, getLibVersion(Objects.requireNonNull(getItem(position)).packageName)));
162+
((TextView) v.findViewById(android.R.id.text2)).setText(Objects.requireNonNull(getItem(position)).copyright != null ? Objects.requireNonNull(getItem(position)).copyright : getString(R.string.about_default_license));
161163
return v;
162164
}
163165
}
@@ -173,6 +175,7 @@ public Library(String packageName, String name, String copyright) {
173175
this.copyright = copyright;
174176
}
175177

178+
@NonNull
176179
@Override
177180
public String toString() {
178181
return name + ", " + copyright;
@@ -183,4 +186,4 @@ public int compareTo(Library another) {
183186
return name.toLowerCase(Locale.US).compareTo(another.name.toLowerCase(Locale.US));
184187
}
185188
}
186-
}
189+
}

play-services-core/microg-ui-tools/src/main/java/org/microg/tools/ui/AbstractSettingsFragment.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import android.os.Bundle;
2020
import android.view.View;
2121

22+
import androidx.annotation.NonNull;
2223
import androidx.fragment.app.DialogFragment;
2324
import androidx.preference.Preference;
2425
import androidx.preference.PreferenceFragmentCompat;
@@ -39,19 +40,22 @@ public void onCreate(Bundle savedInstanceState) {
3940
}
4041

4142
@Override
42-
public void onViewCreated(View view, Bundle savedInstanceState) {
43+
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
4344
super.onViewCreated(view, savedInstanceState);
4445
view.setBackgroundColor(MaterialColors.getColor(view, android.R.attr.colorBackground));
4546
}
4647

48+
/**
49+
* @noinspection deprecation
50+
*/
4751
@Override
48-
public void onDisplayPreferenceDialog(Preference preference) {
52+
public void onDisplayPreferenceDialog(@NonNull Preference preference) {
4953
if (preference instanceof DialogPreference) {
5054
DialogFragment f = DialogPreference.DialogPreferenceCompatDialogFragment.newInstance(preference.getKey());
5155
f.setTargetFragment(this, 0);
52-
f.show(getFragmentManager(), DIALOG_FRAGMENT_TAG);
56+
f.show(requireFragmentManager(), DIALOG_FRAGMENT_TAG);
5357
} else {
5458
super.onDisplayPreferenceDialog(preference);
5559
}
5660
}
57-
}
61+
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2-
android:width="20dp"
3-
android:height="20dp"
2+
android:width="24dp"
3+
android:height="24dp"
44
android:tint="?attr/colorControlNormal"
55
android:viewportWidth="960"
66
android:viewportHeight="960">
77
<path
88
android:fillColor="@android:color/white"
9-
android:pathData="M480,528Q430,528 395,493Q360,458 360,408Q360,358 395,323Q430,288 480,288Q530,288 565,323Q600,358 600,408Q600,458 565,493Q530,528 480,528ZM480,864L307,902Q290,906 276.5,895Q263,884 263,867L263,632Q220,595 194,533Q168,471 168,408Q168,278 259,187Q350,96 480,96Q610,96 701,187Q792,278 792,408Q792,472 768,533.5Q744,595 696,633L696,867Q696,884 682.5,895Q669,906 652,902L480,864ZM480,648Q580,648 650,578Q720,508 720,408Q720,308 650,238Q580,168 480,168Q380,168 310,238Q240,308 240,408Q240,508 310,578Q380,648 480,648ZM335,822L480,790L624,822L624,684Q591,702 554.5,711Q518,720 480,720Q442,720 405,711.5Q368,703 335,684L335,822ZM480,752L480,752Q480,752 480,752Q480,752 480,752Q480,752 480,752Q480,752 480,752L480,752L480,752Z" />
9+
android:pathData="M480,520Q430,520 395,485Q360,450 360,400Q360,350 395,315Q430,280 480,280Q530,280 565,315Q600,350 600,400Q600,450 565,485Q530,520 480,520ZM480,840L293,902Q273,909 256.5,897Q240,885 240,865L240,611Q202,569 181,515Q160,461 160,400Q160,266 253,173Q346,80 480,80Q614,80 707,173Q800,266 800,400Q800,461 779,515Q758,569 720,611L720,865Q720,885 703.5,897Q687,909 667,902L480,840ZM480,640Q580,640 650,570Q720,500 720,400Q720,300 650,230Q580,160 480,160Q380,160 310,230Q240,300 240,400Q240,500 310,570Q380,640 480,640ZM320,801L480,760L640,801L640,677Q605,697 564.5,708.5Q524,720 480,720Q436,720 395.5,708.5Q355,697 320,677L320,801ZM480,739L480,739Q480,739 480,739Q480,739 480,739Q480,739 480,739Q480,739 480,739L480,739L480,739Z" />
1010
</vector>

play-services-core/microg-ui-tools/src/main/res/layout/about_root.xml

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,22 @@
11
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
22
xmlns:app="http://schemas.android.com/apk/res-auto"
33
android:layout_width="match_parent"
4-
android:layout_height="match_parent">
4+
android:layout_height="match_parent"
5+
android:layout_marginStart="?attr/listPreferredItemPaddingStart"
6+
android:layout_marginEnd="?attr/listPreferredItemPaddingEnd"
7+
android:layout_marginBottom="24dp">
58

69
<androidx.constraintlayout.widget.ConstraintLayout
710
android:layout_width="match_parent"
8-
android:layout_height="wrap_content"
9-
android:paddingStart="17dp"
10-
android:paddingEnd="17dp"
11-
android:paddingBottom="12dp">
11+
android:layout_height="wrap_content">
1212

1313
<com.google.android.material.card.MaterialCardView
1414
android:id="@+id/card"
1515
style="?attr/materialCardViewFilledStyle"
1616
android:layout_width="0dp"
1717
android:layout_height="wrap_content"
18-
android:layout_marginTop="16dp"
1918
app:cardBackgroundColor="?attr/colorSurfaceContainer"
20-
app:cardCornerRadius="28dp"
19+
app:cardCornerRadius="20dp"
2120
app:layout_constraintEnd_toEndOf="parent"
2221
app:layout_constraintStart_toStartOf="parent"
2322
app:layout_constraintTop_toTopOf="parent">
@@ -97,12 +96,12 @@
9796
android:id="@+id/libraries_title"
9897
android:layout_width="0dp"
9998
android:layout_height="wrap_content"
100-
android:layout_marginStart="7dp"
101-
android:layout_marginTop="40dp"
102-
android:layout_marginEnd="7dp"
103-
android:layout_marginBottom="6dp"
99+
android:paddingStart="16dp"
100+
android:paddingTop="24dp"
101+
android:paddingEnd="16dp"
102+
android:paddingBottom="12dp"
104103
android:text="@string/about_root_libraries"
105-
android:textAppearance="?attr/textAppearanceTitleSmall"
104+
android:textAppearance="?attr/textAppearanceLabelLarge"
106105
android:textColor="?android:colorAccent"
107106
app:layout_constraintEnd_toEndOf="parent"
108107
app:layout_constraintStart_toStartOf="parent"
@@ -112,8 +111,7 @@
112111
android:id="@+id/library_container"
113112
android:layout_width="0dp"
114113
android:layout_height="wrap_content"
115-
android:layout_marginStart="7dp"
116-
android:layout_marginEnd="7dp"
114+
android:background="@drawable/preference_background_single"
117115
android:orientation="vertical"
118116
app:layout_constraintEnd_toEndOf="parent"
119117
app:layout_constraintStart_toStartOf="parent"

play-services-core/microg-ui-tools/src/main/res/layout/library_item.xml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
xmlns:tools="http://schemas.android.com/tools"
44
android:layout_width="match_parent"
55
android:layout_height="wrap_content"
6-
android:paddingTop="18dp">
6+
android:layout_marginStart="?attr/listPreferredItemPaddingStart"
7+
android:layout_marginTop="16dp"
8+
android:layout_marginEnd="?attr/listPreferredItemPaddingEnd"
9+
android:layout_marginBottom="16dp">
710

811
<com.google.android.material.imageview.ShapeableImageView
912
android:id="@+id/icon"
@@ -19,8 +22,8 @@
1922
android:id="@android:id/text1"
2023
android:layout_width="0dp"
2124
android:layout_height="wrap_content"
22-
android:layout_marginStart="12dp"
23-
android:textAppearance="?attr/textAppearanceBodyMedium"
25+
android:layout_marginStart="16dp"
26+
android:textAppearance="?attr/textAppearanceLabelLarge"
2427
app:layout_constraintBottom_toTopOf="@android:id/text2"
2528
app:layout_constraintEnd_toEndOf="parent"
2629
app:layout_constraintStart_toEndOf="@id/icon"

play-services-core/microg-ui-tools/src/main/res/layout/settings_activity.xml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616

1717
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
1818
xmlns:app="http://schemas.android.com/apk/res-auto"
19+
xmlns:tools="http://schemas.android.com/tools"
1920
android:layout_width="match_parent"
2021
android:layout_height="match_parent"
21-
xmlns:tools="http://schemas.android.com/tools"
2222
android:fitsSystemWindows="true"
2323
android:orientation="vertical">
2424

@@ -35,7 +35,7 @@
3535
android:layout_height="?attr/collapsingToolbarLayoutLargeSize"
3636
app:collapsedTitleTextAppearance="?attr/textAppearanceTitleLargeEmphasized"
3737
app:collapsedTitleTextColor="?attr/colorOnSurface"
38-
app:expandedTitleMarginBottom="24dp"
38+
app:expandedTitleMarginBottom="48dp"
3939
app:expandedTitleMarginEnd="24dp"
4040
app:expandedTitleMarginStart="24dp"
4141
app:expandedTitleMarginTop="96dp"
@@ -67,7 +67,8 @@
6767
<LinearLayout
6868
android:layout_width="match_parent"
6969
android:layout_height="wrap_content"
70-
android:orientation="vertical">
70+
android:orientation="vertical"
71+
android:paddingBottom="68dp">
7172

7273
<org.microg.tools.ui.SwitchBar
7374
android:id="@+id/switch_bar"

play-services-core/src/main/java/org/microg/gms/ui/AccountsFragment.kt

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,19 @@ import android.util.Log
1111
import android.view.LayoutInflater
1212
import android.view.View
1313
import androidx.core.graphics.drawable.RoundedBitmapDrawableFactory
14+
import androidx.core.net.toUri
1415
import androidx.lifecycle.lifecycleScope
1516
import androidx.preference.Preference
1617
import androidx.preference.PreferenceCategory
1718
import androidx.preference.PreferenceFragmentCompat
1819
import com.google.android.gms.R
20+
import com.google.android.material.button.MaterialButton
1921
import com.google.android.material.color.MaterialColors
22+
import com.google.android.material.dialog.MaterialAlertDialogBuilder
2023
import com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
24+
import com.google.android.material.imageview.ShapeableImageView
2125
import com.google.android.material.snackbar.Snackbar
26+
import com.google.android.material.textview.MaterialTextView
2227
import com.google.android.material.transition.platform.MaterialSharedAxis
2328
import kotlinx.coroutines.Dispatchers
2429
import kotlinx.coroutines.launch
@@ -27,11 +32,6 @@ import org.microg.gms.auth.AuthConstants
2732
import org.microg.gms.auth.login.LoginActivity
2833
import org.microg.gms.people.DatabaseHelper
2934
import org.microg.gms.people.PeopleManager
30-
import androidx.core.net.toUri
31-
import com.google.android.material.button.MaterialButton
32-
import com.google.android.material.dialog.MaterialAlertDialogBuilder
33-
import com.google.android.material.imageview.ShapeableImageView
34-
import com.google.android.material.textview.MaterialTextView
3535

3636
class AccountsFragment : PreferenceFragmentCompat() {
3737

@@ -41,7 +41,6 @@ class AccountsFragment : PreferenceFragmentCompat() {
4141

4242
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
4343
addPreferencesFromResource(R.xml.preferences_accounts)
44-
refreshAccountSettings()
4544
}
4645

4746
override fun onCreate(savedInstanceState: Bundle?) {
@@ -58,6 +57,7 @@ class AccountsFragment : PreferenceFragmentCompat() {
5857
setupPreferenceListeners()
5958
}
6059

60+
6161
override fun onResume() {
6262
super.onResume()
6363
fab.show()
@@ -185,15 +185,18 @@ class AccountsFragment : PreferenceFragmentCompat() {
185185

186186
private fun chooseLayoutForPosition(index: Int, total: Int): Int {
187187
return when {
188-
total == 1 -> R.layout.preference_material_secondary_single
189-
total == 2 -> if (index == 0) R.layout.preference_material_secondary_top else R.layout.preference_material_secondary_bottom
190-
total >= 3 -> when (index) {
188+
total <= 1 -> R.layout.preference_material_secondary_single
189+
total == 2 -> if (index == 0) {
190+
R.layout.preference_material_secondary_top
191+
} else {
192+
R.layout.preference_material_secondary_bottom
193+
}
194+
195+
else -> when (index) {
191196
0 -> R.layout.preference_material_secondary_top
192-
1 -> R.layout.preference_material_secondary_bottom
197+
total - 1 -> R.layout.preference_material_secondary_bottom
193198
else -> R.layout.preference_material_secondary_middle
194199
}
195-
196-
else -> R.layout.preference_material_secondary_single
197200
}
198201
}
199202

play-services-core/src/main/java/org/microg/gms/ui/MainSettingsActivity.java

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,35 +4,41 @@
44
import android.graphics.Color;
55
import android.os.Build;
66
import android.os.Bundle;
7+
import android.view.View;
8+
import android.view.Window;
79

8-
import androidx.activity.ComponentActivity;
9-
import androidx.activity.EdgeToEdge;
10-
import androidx.activity.SystemBarStyle;
1110
import androidx.annotation.Nullable;
1211
import androidx.appcompat.app.AppCompatActivity;
1312
import androidx.appcompat.widget.Toolbar;
13+
import androidx.core.graphics.Insets;
14+
import androidx.core.view.ViewCompat;
15+
import androidx.core.view.WindowCompat;
16+
import androidx.core.view.WindowInsetsCompat;
1417
import androidx.navigation.NavController;
1518
import androidx.navigation.fragment.NavHostFragment;
1619
import androidx.navigation.ui.AppBarConfiguration;
1720
import androidx.navigation.ui.NavigationUI;
1821

1922
import com.google.android.gms.R;
2023
import com.google.android.material.appbar.CollapsingToolbarLayout;
24+
2125
import org.microg.gms.ui.settings.SettingsProvider;
2226

2327
import static org.microg.gms.ui.settings.SettingsProviderKt.getAllSettingsProviders;
2428

29+
import java.util.Objects;
30+
2531
public class MainSettingsActivity extends AppCompatActivity {
2632
private AppBarConfiguration appBarConfiguration;
2733

2834
private NavController getNavController() {
29-
return ((NavHostFragment)getSupportFragmentManager().findFragmentById(R.id.navhost)).getNavController();
35+
return ((NavHostFragment) Objects.requireNonNull(getSupportFragmentManager().findFragmentById(R.id.navhost))).getNavController();
3036
}
3137

3238
@Override
3339
protected void onCreate(@Nullable Bundle savedInstanceState) {
3440
super.onCreate(savedInstanceState);
35-
// enableEdgeToEdgeNoContrast();
41+
enableEdgeToEdgeNoContrast();
3642

3743
Intent intent = getIntent();
3844
for (SettingsProvider settingsProvider : getAllSettingsProviders(this)) {
@@ -58,11 +64,12 @@ public boolean onSupportNavigateUp() {
5864
return NavigationUI.navigateUp(getNavController(), appBarConfiguration) || super.onSupportNavigateUp();
5965
}
6066

61-
// private void enableEdgeToEdgeNoContrast() {
62-
// SystemBarStyle systemBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT);
63-
// EdgeToEdge.enable((ComponentActivity) this, systemBarStyle);
64-
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
65-
// getWindow().setNavigationBarContrastEnforced(false);
66-
// }
67-
// }
68-
}
67+
private void enableEdgeToEdgeNoContrast() {
68+
Window window = getWindow();
69+
WindowCompat.setDecorFitsSystemWindows(window, false);
70+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
71+
window.setNavigationBarColor(Color.TRANSPARENT);
72+
window.setNavigationBarContrastEnforced(false);
73+
}
74+
}
75+
}

0 commit comments

Comments
 (0)