[mobile] support autosize

pull/123/head
FongMi 3 years ago
parent 38a8ffa66e
commit 15aacdc4e1
  1. 2
      app/build.gradle
  2. 13
      app/src/leanback/java/com/fongmi/android/tv/Product.java
  3. 37
      app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java
  4. 10
      app/src/mobile/AndroidManifest.xml
  5. 16
      app/src/mobile/java/com/fongmi/android/tv/Product.java

@ -83,6 +83,7 @@ dependencies {
implementation 'com.google.zxing:core:3.3.0'
implementation 'com.guolindev.permissionx:permissionx:1.7.1'
implementation 'com.squareup.okhttp3:okhttp:5.0.0-alpha.10'
implementation 'me.jessyan:autosize:1.2.1'
implementation 'net.java.dev.jna:jna:5.12.1'
implementation 'org.apache.commons:commons-compress:1.20'
implementation 'org.chromium.net:cronet-embedded:101.4951.41'
@ -90,7 +91,6 @@ dependencies {
implementation 'org.nanohttpd:nanohttpd:2.3.1'
implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' }
leanbackImplementation 'androidx.leanback:leanback:1.2.0-alpha02'
leanbackImplementation 'me.jessyan:autosize:1.2.1'
annotationProcessor 'androidx.room:room-compiler:2.5.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.14.2'
}

@ -9,15 +9,6 @@ import me.jessyan.autosize.AutoSizeCompat;
public class Product {
public static Resources hackResources(Resources resources) {
try {
AutoSizeCompat.autoConvertDensityOfGlobal(resources);
return resources;
} catch (Exception ignored) {
return resources;
}
}
public static int getColumn() {
return Math.abs(Prefers.getSize() - 7);
}
@ -25,4 +16,8 @@ public class Product {
public static void bootLive() {
LiveActivity.start(App.activity());
}
public static int getSizeInDp(boolean land) {
return land ? AutoSizeConfig.getInstance().getDesignWidthInDp() : AutoSizeConfig.getInstance().getDesignHeightInDp();
}
}

@ -1,10 +1,12 @@
package com.fongmi.android.tv.ui.activity;
import android.app.Activity;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewbinding.ViewBinding;
@ -22,12 +24,18 @@ import org.greenrobot.eventbus.ThreadMode;
import java.io.File;
public abstract class BaseActivity extends AppCompatActivity {
import me.jessyan.autosize.AutoSizeCompat;
import me.jessyan.autosize.internal.CustomAdapt;
public abstract class BaseActivity extends AppCompatActivity implements CustomAdapt {
protected abstract ViewBinding getBinding();
private boolean land;
@Override
protected void onCreate(Bundle savedInstanceState) {
land = ResUtil.isLand(this);
super.onCreate(savedInstanceState);
setContentView(getBinding().getRoot());
EventBus.getDefault().register(this);
@ -56,6 +64,15 @@ public abstract class BaseActivity extends AppCompatActivity {
}
}
private Resources hackResources(Resources resources) {
try {
AutoSizeCompat.autoConvertDensityOfCustomAdapt(resources, this);
return resources;
} catch (Exception ignored) {
return resources;
}
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onRefreshEvent(RefreshEvent event) {
if (event.getType() != RefreshEvent.Type.WALL) return;
@ -65,7 +82,7 @@ public abstract class BaseActivity extends AppCompatActivity {
@Override
public Resources getResources() {
return Product.hackResources(super.getResources());
return hackResources(super.getResources());
}
@Override
@ -73,4 +90,20 @@ public abstract class BaseActivity extends AppCompatActivity {
super.onDestroy();
EventBus.getDefault().unregister(this);
}
@Override
public void onConfigurationChanged(@NonNull Configuration newConfig) {
super.onConfigurationChanged(newConfig);
land = ResUtil.isLand(this);
}
@Override
public boolean isBaseOnWidth() {
return true;
}
@Override
public float getSizeInDp() {
return Product.getSizeInDp(land);
}
}

@ -4,6 +4,14 @@
<application>
<meta-data
android:name="design_width_in_dp"
android:value="411" />
<meta-data
android:name="design_height_in_dp"
android:value="891" />
<activity
android:name=".ui.activity.MainActivity"
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
@ -27,7 +35,7 @@
android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation"
android:launchMode="singleTop"
android:resizeableActivity="true"
android:screenOrientation="fullSensor"
android:screenOrientation="fullUser"
android:supportsPictureInPicture="true"
android:theme="@style/AppTheme.Detail" />

@ -1,20 +1,12 @@
package com.fongmi.android.tv;
import android.app.Activity;
import android.content.res.Resources;
import com.fongmi.android.tv.utils.ResUtil;
public class Product {
import me.jessyan.autosize.AutoSizeConfig;
public static Resources hackResources(Resources resources) {
try {
//AutoSizeCompat.autoConvertDensityOfGlobal(resources);
return resources;
} catch (Exception ignored) {
return resources;
}
}
public class Product {
public static int getColumn(Activity activity) {
return ResUtil.isPort(activity) ? 3 : 6;
@ -22,4 +14,8 @@ public class Product {
public static void bootLive() {
}
public static int getSizeInDp(boolean land) {
return land ? AutoSizeConfig.getInstance().getDesignHeightInDp() : AutoSizeConfig.getInstance().getDesignWidthInDp();
}
}

Loading…
Cancel
Save