Merge branch 'dev' into release

pull/137/head
FongMi 4 years ago
commit d42fed778a
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 6
      app/src/leanback/res/layout/activity_setting.xml
  3. 5
      app/src/main/java/com/fongmi/android/tv/api/ApiConfig.java
  4. 15
      app/src/main/java/com/fongmi/android/tv/api/Decoder.java
  5. 4
      app/src/main/java/com/fongmi/android/tv/api/LiveConfig.java
  6. 2
      app/src/main/java/com/fongmi/android/tv/net/OKHttp.java
  7. 2
      app/src/main/java/com/fongmi/android/tv/player/Players.java
  8. 4
      app/src/main/java/com/fongmi/android/tv/ui/activity/BaseActivity.java

@ -131,7 +131,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
int index = getRecommendIndex();
mViewModel.getResult().setValue(Result.empty());
if (mAdapter.size() > index) mAdapter.removeItems(index, mAdapter.size() - index);
if (ApiConfig.get().getHome().getName().isEmpty()) mBinding.title.setText(R.string.app_name);
if (ApiConfig.getHomeName().isEmpty()) mBinding.title.setText(R.string.app_name);
else mBinding.title.setText(ApiConfig.getHomeName());
if (ApiConfig.get().getHome().getKey().isEmpty()) return;
mViewModel.homeContent();

@ -26,6 +26,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/setting_vod"
android:textColor="@color/white"
android:textSize="18sp" />
@ -34,6 +35,7 @@
android:id="@+id/vodUrl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="middle"
android:gravity="end"
android:singleLine="true"
android:textColor="@color/white"
@ -88,6 +90,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/setting_live"
android:textColor="@color/white"
android:textSize="18sp" />
@ -96,6 +99,7 @@
android:id="@+id/liveUrl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="middle"
android:gravity="end"
android:singleLine="true"
android:textColor="@color/white"
@ -151,6 +155,7 @@
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:text="@string/setting_wall"
android:textColor="@color/white"
android:textSize="18sp" />
@ -159,6 +164,7 @@
android:id="@+id/wallUrl"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="middle"
android:gravity="end"
android:singleLine="true"
android:textColor="@color/white"

@ -73,6 +73,8 @@ public class ApiConfig {
}
public ApiConfig init() {
this.home = null;
this.wall = null;
this.config = Config.vod();
this.ads = new ArrayList<>();
this.sites = new ArrayList<>();
@ -168,6 +170,7 @@ public class ApiConfig {
if (ext.startsWith("http")) return ext;
else if (ext.startsWith("file")) return FileUtil.read(ext);
else if (ext.startsWith("img+")) return Decoder.getExt(ext);
else if (ext.contains("http") || ext.contains("file")) return ext;
else if (ext.endsWith(".json") || ext.endsWith(".py")) return parseExt(Utils.convert(ext));
return ext;
}
@ -223,7 +226,7 @@ public class ApiConfig {
}
public Config getConfig() {
return config;
return config == null ? Config.vod() : config;
}
public Parse getParse() {

@ -9,6 +9,8 @@ import com.google.common.io.BaseEncoding;
import java.io.File;
import java.nio.charset.StandardCharsets;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
@ -40,8 +42,8 @@ public class Decoder {
try {
File file = FileUtil.getJar(jar);
if (md5.length() > 0 && FileUtil.equals(jar, md5)) return file;
String data = getData(jar.substring(4));
data = data.substring(data.indexOf("**") + 2);
String data = extract(getData(jar.substring(4)));
if (data.isEmpty()) return FileUtil.getJar(jar);
return FileUtil.write(file, Base64.decode(data, Base64.DEFAULT));
} catch (Exception ignored) {
return FileUtil.getJar(jar);
@ -79,7 +81,14 @@ public class Decoder {
}
private static String base64(String data) {
return new String(Base64.decode(data.substring(data.indexOf("**") + 2), Base64.DEFAULT));
String extract = extract(data);
if (extract.isEmpty()) return data;
return new String(Base64.decode(extract, Base64.DEFAULT));
}
private static String extract(String data) {
Matcher matcher = Pattern.compile("[A-Za-z0-9]{8}\\*\\*").matcher(data);
return matcher.find() ? data.substring(data.indexOf(matcher.group()) + 10) : "";
}
private static byte[] padEnd(String key) {

@ -49,6 +49,7 @@ public class LiveConfig {
}
public LiveConfig init() {
this.home = null;
this.config = Config.live();
this.lives = new ArrayList<>();
this.handler = new Handler(Looper.getMainLooper());
@ -61,6 +62,7 @@ public class LiveConfig {
}
public LiveConfig clear() {
this.home = null;
this.lives.clear();
this.lives.addAll(ApiConfig.get().getLives());
return this;
@ -174,7 +176,7 @@ public class LiveConfig {
}
public Config getConfig() {
return config;
return config == null ? Config.live() : config;
}
public Live getHome() {

@ -29,7 +29,7 @@ public class OKHttp {
}
private OkHttpClient.Builder getBuilder() {
return new OkHttpClient.Builder().readTimeout(15, TimeUnit.SECONDS).writeTimeout(15, TimeUnit.SECONDS).connectTimeout(5, TimeUnit.SECONDS).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert);
return new OkHttpClient.Builder().callTimeout(10, TimeUnit.SECONDS).readTimeout(10, TimeUnit.SECONDS).writeTimeout(10, TimeUnit.SECONDS).connectTimeout(10, TimeUnit.SECONDS).sslSocketFactory(new SSLSocketFactoryCompat(), SSLSocketFactoryCompat.trustAllCert);
}
private OkHttpClient client() {

@ -192,8 +192,8 @@ public class Players implements Player.Listener, ParseTask.Callback {
@Override
public void onPlayerError(@NonNull PlaybackException error) {
setErrorCode(error.errorCode);
PlayerEvent.error(R.string.error_play_format, true);
setErrorCode(error.errorCode);
}
@Override

@ -10,6 +10,7 @@ import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.Prefers;
@ -52,7 +53,8 @@ public abstract class BaseActivity extends AppCompatActivity {
private void setWall() {
File file = FileUtil.getWall(Prefers.getWall());
if (file.exists() && file.length() > 0) getWindow().setBackgroundDrawable(Drawable.createFromPath(file.getPath()));
else getWindow().setBackgroundDrawableResource(ResUtil.getDrawable(file.getName()));
else if (Prefers.getWall() > 0) getWindow().setBackgroundDrawableResource(ResUtil.getDrawable(file.getName()));
else getWindow().setBackgroundDrawableResource(R.drawable.wallpaper_1);
}
private void hackResources() {

Loading…
Cancel
Save