Skip to content

Commit 7bd3233

Browse files
committed
适配Pad UI
1 parent df951e6 commit 7bd3233

12 files changed

Lines changed: 195 additions & 13 deletions

File tree

app/libs/appcompat-release.aar

-11.4 KB
Binary file not shown.

app/src/main/java/com/sevtinge/hyperceiler/ui/activity/HyperCeilerTabActivity.java

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import android.graphics.Paint;
1717
import android.os.Bundle;
1818
import android.os.Handler;
19+
import android.text.TextUtils;
1920
import android.view.View;
2021

2122
import androidx.annotation.NonNull;
@@ -27,9 +28,12 @@
2728
import com.sevtinge.hyperceiler.R;
2829
import com.sevtinge.hyperceiler.callback.IResult;
2930
import com.sevtinge.hyperceiler.prefs.PreferenceHeader;
31+
import com.sevtinge.hyperceiler.prefs.XmlPreference;
3032
import com.sevtinge.hyperceiler.safe.CrashData;
3133
import com.sevtinge.hyperceiler.ui.activity.base.NaviBaseActivity;
34+
import com.sevtinge.hyperceiler.ui.fragment.dashboard.DashboardFragment;
3235
import com.sevtinge.hyperceiler.ui.fragment.main.ContentFragment;
36+
import com.sevtinge.hyperceiler.ui.fragment.main.DetailFragment;
3337
import com.sevtinge.hyperceiler.utils.BackupUtils;
3438
import com.sevtinge.hyperceiler.utils.DialogHelper;
3539
import com.sevtinge.hyperceiler.utils.Helpers;
@@ -46,6 +50,11 @@
4650
import java.util.Map;
4751

4852
import fan.appcompat.app.AlertDialog;
53+
import fan.appcompat.app.Fragment;
54+
import fan.navigator.Navigator;
55+
import fan.navigator.NavigatorFragmentListener;
56+
import fan.navigator.navigatorinfo.UpdateDetailFragmentNavInfo;
57+
import fan.os.Build;
4958
import fan.preference.PreferenceFragment;
5059

5160
public class HyperCeilerTabActivity extends NaviBaseActivity
@@ -152,7 +161,40 @@ public void error(String reason) {
152161

153162
@Override
154163
public boolean onPreferenceStartFragment(@NonNull PreferenceFragmentCompat caller, @NonNull Preference pref) {
155-
mProxy.onStartSettingsForArguments(SubSettings.class, pref, false);
164+
if (caller instanceof NavigatorFragmentListener &&
165+
Navigator.get(caller).getNavigationMode() == Navigator.Mode.NLC &&
166+
Build.IS_TABLET) {
167+
Bundle args = new Bundle();
168+
Bundle savedInstanceState = new Bundle();
169+
if (pref instanceof XmlPreference xmlPreference) {
170+
args.putInt(":settings:fragment_resId", xmlPreference.getInflatedXml());
171+
savedInstanceState.putInt(":settings:fragment_resId", xmlPreference.getInflatedXml());
172+
} else {
173+
Intent intent = pref.getIntent();
174+
if (intent != null) {
175+
Bundle bundle = intent.getExtras();
176+
if (bundle != null) {
177+
String xmlPath = (String) bundle.get("inflatedXml");
178+
if (!TextUtils.isEmpty(xmlPath)) {
179+
if (args == null) args = new Bundle();
180+
String[] split = xmlPath.split("\\/");
181+
182+
String[] split2 = split[2].split("\\.");
183+
if (split.length == 3) {
184+
args.putInt(":settings:fragment_resId", getResources().getIdentifier(split2[0], split[1], getPackageName()));
185+
savedInstanceState.putInt(":settings:fragment_resId", getResources().getIdentifier(split2[0], split[1], getPackageName()));
186+
}
187+
}
188+
}
189+
}
190+
}
191+
192+
String mFragmentName = pref.getFragment();
193+
savedInstanceState.putString("FragmentName", mFragmentName);
194+
Navigator.get(caller).navigate(new UpdateDetailFragmentNavInfo(-1, DetailFragment.class, savedInstanceState));
195+
} else {
196+
mProxy.onStartSettingsForArguments(SubSettings.class, pref, false);
197+
}
156198
return true;
157199
}
158200

app/src/main/java/com/sevtinge/hyperceiler/ui/activity/base/NaviBaseActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public Bundle getNavigatorInitArgs() {
6161
NavigatorStrategy navigatorStrategy = new NavigatorStrategy();
6262
navigatorStrategy.setCompactMode(Navigator.Mode.C);
6363
navigatorStrategy.setRegularMode(Navigator.Mode.C);
64-
navigatorStrategy.setLargeMode(Navigator.Mode.C);
64+
navigatorStrategy.setLargeMode(Navigator.Mode.NLC);
6565
Bundle bundle = new Bundle();
6666
bundle.putParcelable("miuix:navigatorStrategy", navigatorStrategy);
6767
return bundle;

app/src/main/java/com/sevtinge/hyperceiler/ui/fragment/main/AboutFragment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,12 @@
5757
import fan.appcompat.app.ActionBar;
5858
import fan.appcompat.app.Fragment;
5959
import fan.core.widget.NestedScrollView;
60+
import fan.navigator.NavigatorFragmentListener;
6061
import fan.preference.PreferenceFragment;
6162
import fan.springback.view.SpringBackLayout;
6263

6364
public class AboutFragment extends DashboardFragment
64-
implements View.OnScrollChangeListener, IFragmentChange {
65+
implements View.OnScrollChangeListener, NavigatorFragmentListener, IFragmentChange {
6566

6667
private int lIIlIll = 100 >>> 7;
6768
private final int lIIlIlI = 100 >>> 6;

app/src/main/java/com/sevtinge/hyperceiler/ui/fragment/main/ContentFragment.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import fan.appcompat.app.Fragment;
2323
import fan.navigator.Navigator;
2424
import fan.navigator.NavigatorFragmentListener;
25+
import fan.navigator.navigatorinfo.DetailFragmentNavInfo;
2526
import fan.navigator.navigatorinfo.UpdateFragmentNavInfo;
27+
import fan.os.Build;
2628

2729
public class ContentFragment extends Fragment implements NavigatorFragmentListener {
2830

@@ -72,6 +74,9 @@ public void onViewInflated(@NonNull View view, @Nullable Bundle savedInstanceSta
7274
setCorrectNestedScrollMotionEventEnabled(true);
7375
mViewPager = view.findViewById(R.id.vp_fragments);
7476
setupViewPager();
77+
if (Build.IS_TABLET && Navigator.get(this).getNavigationMode() == Navigator.Mode.NLC) {
78+
Navigator.get(this).navigate(new DetailFragmentNavInfo(-1, DetailFragment.class, new Bundle()));
79+
}
7580
}
7681

7782
public void selectNavigationItem() {
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.sevtinge.hyperceiler.ui.fragment.main;
2+
3+
import android.content.Intent;
4+
import android.os.Bundle;
5+
import android.text.TextUtils;
6+
import android.view.LayoutInflater;
7+
import android.view.View;
8+
import android.view.ViewGroup;
9+
10+
import androidx.annotation.NonNull;
11+
import androidx.annotation.Nullable;
12+
13+
import com.sevtinge.hyperceiler.R;
14+
15+
import fan.appcompat.app.Fragment;
16+
17+
public class DetailFragment extends Fragment {
18+
19+
String mFragmentName;
20+
21+
View mEmptyView;
22+
23+
@Override
24+
public void onCreate(@Nullable Bundle savedInstanceState) {
25+
super.onCreate(savedInstanceState);
26+
setThemeRes(R.style.NavigatorSecondaryContentTheme);
27+
}
28+
29+
@Override
30+
public View onInflateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
31+
return inflater.inflate(R.layout.fragment_detail, container, false);
32+
}
33+
34+
@Override
35+
public void onViewInflated(@NonNull View view, @Nullable Bundle savedInstanceState) {
36+
super.onViewInflated(view, savedInstanceState);
37+
mEmptyView = view.findViewById(R.id.empty);
38+
if (getActionBar() != null) {
39+
getActionBar().hide();
40+
}
41+
}
42+
43+
@Override
44+
public void onUpdateArguments(Bundle args) {
45+
super.onUpdateArguments(args);
46+
if (args != null) {
47+
mFragmentName = args.getString("FragmentName");
48+
//int fragmentResId = args.getInt(":settings:fragment_resId");
49+
50+
if (!TextUtils.isEmpty(mFragmentName)) {
51+
getChildFragmentManager()
52+
.beginTransaction()
53+
.replace(R.id.frame_content, androidx.fragment.app.Fragment.instantiate(requireContext(), mFragmentName, args))
54+
.commit();
55+
56+
mEmptyView.setVisibility(View.INVISIBLE);
57+
58+
}
59+
} else {
60+
mEmptyView.setVisibility(View.VISIBLE);
61+
}
62+
}
63+
}

app/src/main/java/com/sevtinge/hyperceiler/ui/fragment/main/HomePageFragment.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,16 @@
5252
import java.util.Objects;
5353

5454
import fan.appcompat.app.Fragment;
55+
import fan.navigator.Navigator;
56+
import fan.navigator.NavigatorFragmentListener;
57+
import fan.navigator.navigatorinfo.DetailFragmentNavInfo;
58+
import fan.navigator.navigatorinfo.UpdateDetailFragmentNavInfo;
5559
import fan.nestedheader.widget.NestedHeaderLayout;
5660
import fan.springback.view.SpringBackLayout;
5761

5862
public class HomePageFragment extends DashboardFragment
59-
implements HomepageEntrance.EntranceState,
60-
ModSearchCallback.OnSearchListener, IFragmentChange {
63+
implements HomepageEntrance.EntranceState, ModSearchCallback.OnSearchListener,
64+
NavigatorFragmentListener, IFragmentChange {
6165

6266
View mRootView;
6367
ViewGroup mPrefsContainer;

app/src/main/java/com/sevtinge/hyperceiler/ui/fragment/main/ModuleSettingsFragment.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,11 @@
3939
import com.sevtinge.hyperceiler.ui.fragment.main.ContentFragment.IFragmentChange;
4040

4141
import fan.appcompat.app.AppCompatActivity;
42+
import fan.navigator.NavigatorFragmentListener;
4243
import fan.preference.DropDownPreference;
4344

4445
public class ModuleSettingsFragment extends SettingsPreferenceFragment
45-
implements Preference.OnPreferenceChangeListener, IFragmentChange {
46+
implements Preference.OnPreferenceChangeListener, NavigatorFragmentListener, IFragmentChange {
4647
DropDownPreference mIconModePreference;
4748
DropDownPreference mIconModeValue;
4849
SwitchPreference mHideAppIcon;

app/src/main/java/com/sevtinge/hyperceiler/utils/SettingLauncherHelper.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@
2121
import android.content.Context;
2222
import android.os.Bundle;
2323

24+
import fan.appcompat.app.Fragment;
25+
import fan.navigator.Navigator;
26+
import fan.navigator.navigatorinfo.UpdateDetailFragmentNavInfo;
27+
2428
public class SettingLauncherHelper {
2529

2630
public static void onStartSettingsForArguments(Context context, Class<?> cls, String fragment, String title) {
@@ -64,12 +68,12 @@ public static void onStartSettings(Context context, Class<?> cls, Class<?> fname
6468

6569
public static void onStartSettings(Context context, Class<?> cls, String fragment, Bundle extras, Bundle args, int titleResId, String title) {
6670
new SettingLauncher(context)
67-
.setClass(cls)
68-
.setDestination(fragment)
69-
.setTitleText(title)
70-
.setTitleRes(titleResId)
71-
.setExtras(extras)
72-
.setArguments(args)
73-
.launch();
71+
.setClass(cls)
72+
.setDestination(fragment)
73+
.setTitleText(title)
74+
.setTitleRes(titleResId)
75+
.setExtras(extras)
76+
.setArguments(args)
77+
.launch();
7478
}
7579
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
3+
android:width="100dp"
4+
android:height="64dp"
5+
android:viewportWidth="100.0"
6+
android:viewportHeight="64.0">
7+
<path
8+
android:fillColor="#FFF5F9FC"
9+
android:pathData="M37.5,11.43L72.86,11.43A5,5 0,0 1,77.86 16.43L77.86,57.86A5,5 0,0 1,72.86 62.86L37.5,62.86A5,5 0,0 1,32.5 57.86L32.5,16.43A5,5 0,0 1,37.5 11.43z" />
10+
<path
11+
android:fillAlpha="0.13"
12+
android:fillColor="#FF6595BB"
13+
android:fillType="evenOdd"
14+
android:pathData="M21.79,14.29V50.36C21.79,53.12 24.02,55.36 26.79,55.36H65.36C68.12,55.36 70.36,53.12 70.36,50.36V6.07C70.36,3.31 68.12,1.07 65.36,1.07H35L21.79,14.29Z" />
15+
<path
16+
android:fillColor="#FFF5F9FC"
17+
android:fillType="evenOdd"
18+
android:pathData="M35.1,1.07V9.38C35.1,12.14 32.86,14.38 30.1,14.38H21.79V14.29L35,1.07H35.1Z" />
19+
</vector>

0 commit comments

Comments
 (0)