From 59f792c7521dd67a99627f019e8d30e90516c789 Mon Sep 17 00:00:00 2001 From: FongMi Date: Tue, 28 Jun 2022 00:38:55 +0800 Subject: [PATCH] Add vod activity --- app/build.gradle | 1 - app/src/main/AndroidManifest.xml | 5 + .../main/java/com/fongmi/bear/ApiConfig.java | 13 +- .../java/com/fongmi/bear/bean/Result.java | 14 ++ .../main/java/com/fongmi/bear/bean/Type.java | 19 +++ .../com/fongmi/bear/model/SiteViewModel.java | 60 +++++-- .../fongmi/bear/ui/activity/HomeActivity.java | 18 +- .../bear/ui/activity/SplashActivity.java | 1 - .../fongmi/bear/ui/activity/VodActivity.java | 81 +++++++++ .../fongmi/bear/ui/custom/ProgressLayout.java | 158 ++++++++++++++++++ .../fongmi/bear/ui/fragment/VodFragment.java | 72 ++++++++ .../java/com/fongmi/bear/utils/Notify.java | 4 +- .../com/github/catvod/crawler/JarLoader.java | 3 +- .../github/catvod/crawler/SpiderDebug.java | 4 + app/src/main/res/layout/activity_home.xml | 8 +- app/src/main/res/layout/activity_splash.xml | 21 +-- app/src/main/res/layout/activity_vod.xml | 26 +++ app/src/main/res/layout/fragment_vod.xml | 14 ++ ...{dialog_progress.xml => view_progress.xml} | 0 19 files changed, 467 insertions(+), 55 deletions(-) create mode 100644 app/src/main/java/com/fongmi/bear/bean/Type.java create mode 100644 app/src/main/java/com/fongmi/bear/ui/activity/VodActivity.java create mode 100644 app/src/main/java/com/fongmi/bear/ui/custom/ProgressLayout.java create mode 100644 app/src/main/java/com/fongmi/bear/ui/fragment/VodFragment.java create mode 100644 app/src/main/res/layout/activity_vod.xml create mode 100644 app/src/main/res/layout/fragment_vod.xml rename app/src/main/res/layout/{dialog_progress.xml => view_progress.xml} (100%) diff --git a/app/build.gradle b/app/build.gradle index 2e624d8ca..6229faf8f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -38,7 +38,6 @@ dependencies { implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'androidx.room:room-runtime:2.4.2' - implementation 'com.github.androidprogresslayout:library:2.0.2@aar' implementation 'com.github.bumptech.glide:glide:4.13.2' implementation 'com.google.android.material:material:1.6.1' implementation 'com.google.android.exoplayer:exoplayer:2.18.0' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b34560ede..42646a7f2 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -59,6 +59,11 @@ android:configChanges="screenSize|smallestScreenSize|screenLayout|orientation" android:screenOrientation="sensorLandscape" /> + + lives; private final List sites; private final Handler handler; - private String spider; private Parse parse; private Site home; @@ -75,8 +74,10 @@ public class ApiConfig { public void onResponse(@NonNull Call call, @NonNull Response response) { try { clear(); - parseJson(response.body().string()); - loadJar(); + JsonObject object = new Gson().fromJson(response.body().string(), JsonObject.class); + String spider = Json.safeString(object, "spider", ""); + parseJson(object); + loadJar(spider); handler.post(callback::success); } catch (Exception e) { handler.post(() -> callback.error("配置解析失敗")); @@ -90,9 +91,7 @@ public class ApiConfig { }); } - private void parseJson(String json) { - JsonObject object = new Gson().fromJson(json, JsonObject.class); - spider = Json.safeString(object, "spider", ""); + private void parseJson(JsonObject object) { for (JsonElement opt : object.get("sites").getAsJsonArray()) { JsonObject obj = (JsonObject) opt; Site site = new Site(); @@ -112,7 +111,7 @@ public class ApiConfig { } } - private void loadJar() throws IOException { + private void loadJar(String spider) throws IOException { Request request = new Request.Builder().url(spider).build(); Response response = OKHttp.get().client().newCall(request).execute(); jarLoader.load(response.body().bytes()); diff --git a/app/src/main/java/com/fongmi/bear/bean/Result.java b/app/src/main/java/com/fongmi/bear/bean/Result.java index 5083eb814..22d69efcc 100644 --- a/app/src/main/java/com/fongmi/bear/bean/Result.java +++ b/app/src/main/java/com/fongmi/bear/bean/Result.java @@ -1,5 +1,7 @@ package com.fongmi.bear.bean; +import androidx.annotation.NonNull; + import com.google.gson.Gson; import com.google.gson.annotations.SerializedName; @@ -8,6 +10,8 @@ import java.util.List; public class Result { + @SerializedName("class") + private List types; @SerializedName("list") private List list; @@ -16,7 +20,17 @@ public class Result { return result == null ? new Result() : result; } + public List getTypes() { + return types; + } + public List getList() { return list == null ? Collections.emptyList() : list; } + + @NonNull + @Override + public String toString() { + return new Gson().toJson(this); + } } diff --git a/app/src/main/java/com/fongmi/bear/bean/Type.java b/app/src/main/java/com/fongmi/bear/bean/Type.java new file mode 100644 index 000000000..75477e678 --- /dev/null +++ b/app/src/main/java/com/fongmi/bear/bean/Type.java @@ -0,0 +1,19 @@ +package com.fongmi.bear.bean; + +import com.google.gson.annotations.SerializedName; + +public class Type { + + @SerializedName("type_id") + private String typeId; + @SerializedName("type_name") + private String typeName; + + public String getTypeId() { + return typeId; + } + + public String getTypeName() { + return typeName; + } +} diff --git a/app/src/main/java/com/fongmi/bear/model/SiteViewModel.java b/app/src/main/java/com/fongmi/bear/model/SiteViewModel.java index 9ea5a7262..79985abbe 100644 --- a/app/src/main/java/com/fongmi/bear/model/SiteViewModel.java +++ b/app/src/main/java/com/fongmi/bear/model/SiteViewModel.java @@ -11,38 +11,64 @@ import com.fongmi.bear.bean.Site; import com.github.catvod.crawler.Spider; import com.github.catvod.crawler.SpiderDebug; +import java.util.HashMap; +import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.Future; +import java.util.concurrent.TimeUnit; public class SiteViewModel extends ViewModel { - public ExecutorService mService; public MutableLiveData mResult; + public ExecutorService mService; public SiteViewModel() { - this.mService = Executors.newFixedThreadPool(5); + this.mService = Executors.newFixedThreadPool(2); this.mResult = new MutableLiveData<>(); } - public void homeContent(String key) { - if (TextUtils.isEmpty(key)) { + public MutableLiveData getResult() { + return mResult; + } + + public void homeContent() { + Site home = ApiConfig.get().getHome(); + if (TextUtils.isEmpty(home.getKey())) { mResult.postValue(new Result()); - return; - } - Site site = ApiConfig.get().getSite(key); - if (site.getType() == 3) { - mService.submit(() -> { - Spider spider = ApiConfig.get().getCSP(site); + } else { + postResult(() -> { + Spider spider = ApiConfig.get().getCSP(home); String homeContent = spider.homeContent(false); - SpiderDebug.log(homeContent); + SpiderDebug.json(homeContent); Result result = Result.objectFrom(homeContent); - if (result.getList().isEmpty()) { - String homeVideoContent = spider.homeVideoContent(); - SpiderDebug.log(homeVideoContent); - result = Result.objectFrom(homeVideoContent); - } - mResult.postValue(result); + if (result.getList().size() > 0) return result; + String homeVideoContent = spider.homeVideoContent(); + SpiderDebug.json(homeVideoContent); + return Result.objectFrom(homeVideoContent); }); } } + + public void categoryContent(String tid, String page, boolean filter, HashMap extend) { + Site home = ApiConfig.get().getHome(); + postResult(() -> { + Spider spider = ApiConfig.get().getCSP(home); + String categoryContent = spider.categoryContent(tid, page, filter, extend); + SpiderDebug.json(categoryContent); + return Result.objectFrom(categoryContent); + }); + } + + private void postResult(Callable callable) { + mService.execute(() -> { + try { + Future future = mService.submit(callable); + Result result = future.get(10, TimeUnit.SECONDS); + mResult.postValue(result); + } catch (Exception e) { + mResult.postValue(new Result()); + } + }); + } } diff --git a/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java b/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java index f8e5ddcff..41135dd4c 100644 --- a/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java +++ b/app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java @@ -9,9 +9,9 @@ import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.viewbinding.ViewBinding; -import com.fongmi.bear.ApiConfig; import com.fongmi.bear.R; import com.fongmi.bear.bean.Func; +import com.fongmi.bear.bean.Result; import com.fongmi.bear.databinding.ActivityHomeBinding; import com.fongmi.bear.model.SiteViewModel; import com.fongmi.bear.ui.adapter.FuncAdapter; @@ -39,7 +39,7 @@ public class HomeActivity extends BaseActivity { protected void initView() { setRecyclerView(); setViewModel(); - homeContent(); + getContent(); } @Override @@ -61,17 +61,21 @@ public class HomeActivity extends BaseActivity { mSiteViewModel = new ViewModelProvider(this).get(SiteViewModel.class); mSiteViewModel.mResult.observe(this, result -> { mVodAdapter.addAll(result.getList()); - mBinding.recommendLayout.showContent(); + mBinding.progress.showContent(); }); } - private void homeContent() { - mBinding.recommendLayout.showProgress(); - mSiteViewModel.homeContent(ApiConfig.get().getHome().getKey()); + private void getContent() { + mBinding.progress.showProgress(); + mSiteViewModel.homeContent(); } private void onFuncClick(Func item) { switch (item.getResId()) { + case R.string.home_vod: + Result result = mSiteViewModel.getResult().getValue(); + if (result != null) VodActivity.start(this, result); + break; case R.string.home_setting: SettingActivity.start(this); break; @@ -82,6 +86,6 @@ public class HomeActivity extends BaseActivity { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode != RESULT_OK) return; - homeContent(); + getContent(); } } \ No newline at end of file diff --git a/app/src/main/java/com/fongmi/bear/ui/activity/SplashActivity.java b/app/src/main/java/com/fongmi/bear/ui/activity/SplashActivity.java index 9bb29e226..5590575fd 100644 --- a/app/src/main/java/com/fongmi/bear/ui/activity/SplashActivity.java +++ b/app/src/main/java/com/fongmi/bear/ui/activity/SplashActivity.java @@ -32,7 +32,6 @@ public class SplashActivity extends BaseActivity { @Override public void onAnimationEnd(Animator animation) { mBinding.title.setVisibility(View.GONE); - mBinding.progress.animate().alpha(1).setDuration(500).start(); mBinding.info.animate().alpha(1).setDuration(500).start(); loadConfig(); } diff --git a/app/src/main/java/com/fongmi/bear/ui/activity/VodActivity.java b/app/src/main/java/com/fongmi/bear/ui/activity/VodActivity.java new file mode 100644 index 000000000..ed2d4ea8d --- /dev/null +++ b/app/src/main/java/com/fongmi/bear/ui/activity/VodActivity.java @@ -0,0 +1,81 @@ +package com.fongmi.bear.ui.activity; + +import android.app.Activity; +import android.content.Intent; + +import androidx.annotation.NonNull; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.viewbinding.ViewBinding; +import androidx.viewpager2.adapter.FragmentStateAdapter; + +import com.fongmi.bear.bean.Result; +import com.fongmi.bear.bean.Type; +import com.fongmi.bear.databinding.ActivityVodBinding; +import com.fongmi.bear.ui.fragment.VodFragment; +import com.google.android.material.tabs.TabLayout; + +public class VodActivity extends BaseActivity { + + private ActivityVodBinding mBinding; + private Result mResult; + + private String getResult() { + return getIntent().getStringExtra("result"); + } + + public static void start(Activity activity, Result result) { + Intent intent = new Intent(activity, VodActivity.class); + intent.putExtra("result", result.toString()); + activity.startActivity(intent); + } + + @Override + protected ViewBinding getBinding() { + return mBinding = ActivityVodBinding.inflate(getLayoutInflater()); + } + + @Override + protected void initView() { + mResult = Result.objectFrom(getResult()); + for (Type type : mResult.getTypes()) mBinding.tab.addTab(mBinding.tab.newTab().setText(type.getTypeName())); + mBinding.pager.setAdapter(new PageAdapter(this)); + mBinding.pager.setOffscreenPageLimit(mResult.getTypes().size()); + } + + @Override + protected void initEvent() { + mBinding.tab.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() { + @Override + public void onTabSelected(TabLayout.Tab tab) { + mBinding.pager.setCurrentItem(tab.getPosition()); + } + + @Override + public void onTabUnselected(TabLayout.Tab tab) { + } + + @Override + public void onTabReselected(TabLayout.Tab tab) { + } + }); + } + + public class PageAdapter extends FragmentStateAdapter { + + public PageAdapter(@NonNull FragmentActivity activity) { + super(activity); + } + + @NonNull + @Override + public Fragment createFragment(int position) { + return VodFragment.newInstance(mResult.getTypes().get(position).getTypeId()); + } + + @Override + public int getItemCount() { + return mResult.getTypes().size(); + } + } +} diff --git a/app/src/main/java/com/fongmi/bear/ui/custom/ProgressLayout.java b/app/src/main/java/com/fongmi/bear/ui/custom/ProgressLayout.java new file mode 100644 index 000000000..0b5726a5a --- /dev/null +++ b/app/src/main/java/com/fongmi/bear/ui/custom/ProgressLayout.java @@ -0,0 +1,158 @@ +package com.fongmi.bear.ui.custom; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.RelativeLayout; +import android.widget.TextView; + +import com.fongmi.bear.databinding.ViewProgressBinding; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ProgressLayout extends RelativeLayout { + + private static final String TAG_PROGRESS = "ProgressLayout.TAG_PROGRESS"; + private static final String TAG_ERROR = "ProgressLayout.TAG_ERROR"; + + public enum State { + CONTENT, PROGRESS, ERROR + } + + private View mProgressView; + private TextView mErrorTextView; + private List mContentViews = new ArrayList(); + + private ProgressLayout.State mState = ProgressLayout.State.CONTENT; + + public ProgressLayout(Context context) { + super(context); + } + + public ProgressLayout(Context context, AttributeSet attrs) { + super(context, attrs); + init(); + } + + public ProgressLayout(Context context, AttributeSet attrs, int defStyle) { + super(context, attrs, defStyle); + init(); + } + + private void init() { + mProgressView = ViewProgressBinding.inflate(LayoutInflater.from(getContext())).getRoot(); + LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + layoutParams.addRule(CENTER_IN_PARENT); + mProgressView.setTag(TAG_PROGRESS); + addView(mProgressView, layoutParams); + mErrorTextView = new TextView(getContext()); + mErrorTextView.setTag(TAG_ERROR); + layoutParams = new LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); + layoutParams.addRule(CENTER_IN_PARENT); + addView(mErrorTextView, layoutParams); + mProgressView.setVisibility(GONE); + } + + @Override + public void addView(View child, int index, ViewGroup.LayoutParams params) { + super.addView(child, index, params); + + if (child.getTag() == null || (!child.getTag().equals(TAG_PROGRESS) && !child.getTag().equals(TAG_ERROR))) { + mContentViews.add(child); + } + } + + public void showProgress() { + switchState(ProgressLayout.State.PROGRESS, null, Collections.emptyList()); + } + + public void showProgress(List skipIds) { + switchState(ProgressLayout.State.PROGRESS, null, skipIds); + } + + public void showErrorText() { + switchState(ProgressLayout.State.ERROR, null, Collections.emptyList()); + } + + public void showErrorText(List skipIds) { + switchState(ProgressLayout.State.ERROR, null, skipIds); + } + + public void showErrorText(String error) { + switchState(ProgressLayout.State.ERROR, error, Collections.emptyList()); + } + + public void showErrorText(String error, List skipIds) { + switchState(ProgressLayout.State.ERROR, error, skipIds); + } + + public void showContent() { + switchState(ProgressLayout.State.CONTENT, null, Collections.emptyList()); + } + + public void showContent(List skipIds) { + switchState(ProgressLayout.State.CONTENT, null, skipIds); + } + + public void switchState(ProgressLayout.State state) { + switchState(state, null, Collections.emptyList()); + } + + public void switchState(ProgressLayout.State state, String errorText) { + switchState(state, errorText, Collections.emptyList()); + } + + public void switchState(ProgressLayout.State state, List skipIds) { + switchState(state, null, skipIds); + } + + public void switchState(ProgressLayout.State state, String errorText, List skipIds) { + mState = state; + switch (state) { + case CONTENT: + mErrorTextView.setVisibility(View.GONE); + mProgressView.setVisibility(View.GONE); + setContentVisibility(true, skipIds); + break; + case PROGRESS: + mErrorTextView.setVisibility(View.GONE); + mProgressView.setVisibility(View.VISIBLE); + setContentVisibility(false, skipIds); + break; + case ERROR: + mErrorTextView.setText(errorText); + mErrorTextView.setVisibility(View.VISIBLE); + mProgressView.setVisibility(View.GONE); + setContentVisibility(false, skipIds); + break; + } + } + + public ProgressLayout.State getState() { + return mState; + } + + public boolean isProgress() { + return mState == ProgressLayout.State.PROGRESS; + } + + public boolean isContent() { + return mState == ProgressLayout.State.CONTENT; + } + + public boolean isError() { + return mState == ProgressLayout.State.ERROR; + } + + private void setContentVisibility(boolean visible, List skipIds) { + for (View v : mContentViews) { + if (!skipIds.contains(v.getId())) { + v.setVisibility(visible ? View.VISIBLE : View.GONE); + } + } + } +} diff --git a/app/src/main/java/com/fongmi/bear/ui/fragment/VodFragment.java b/app/src/main/java/com/fongmi/bear/ui/fragment/VodFragment.java new file mode 100644 index 000000000..2bf3fc14f --- /dev/null +++ b/app/src/main/java/com/fongmi/bear/ui/fragment/VodFragment.java @@ -0,0 +1,72 @@ +package com.fongmi.bear.ui.fragment; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.ViewModelProvider; +import androidx.recyclerview.widget.GridLayoutManager; + +import com.fongmi.bear.databinding.FragmentVodBinding; +import com.fongmi.bear.model.SiteViewModel; +import com.fongmi.bear.ui.adapter.VodAdapter; +import com.fongmi.bear.ui.custom.SpaceItemDecoration; + +import java.util.HashMap; + +public class VodFragment extends Fragment { + + private FragmentVodBinding mBinding; + private SiteViewModel mSiteViewModel; + private VodAdapter mVodAdapter; + + private String getTypeId() { + return getArguments().getString("typeId"); + } + + public static VodFragment newInstance(String typeId) { + Bundle args = new Bundle(); + args.putString("typeId", typeId); + VodFragment fragment = new VodFragment(); + fragment.setArguments(args); + return fragment; + } + + @Nullable + @Override + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + mBinding = FragmentVodBinding.inflate(inflater, container, false); + return mBinding.getRoot(); + } + + @Override + public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { + setRecyclerView(); + setViewModel(); + getContent(); + } + + private void setRecyclerView() { + mBinding.recycler.setHasFixedSize(true); + mBinding.recycler.setLayoutManager(new GridLayoutManager(getContext(), 5)); + mBinding.recycler.addItemDecoration(new SpaceItemDecoration(5, 12, false, 0)); + mBinding.recycler.setAdapter(mVodAdapter = new VodAdapter()); + } + + private void setViewModel() { + mSiteViewModel = new ViewModelProvider(this).get(SiteViewModel.class); + mSiteViewModel.mResult.observe(getViewLifecycleOwner(), result -> { + mVodAdapter.addAll(result.getList()); + mBinding.progress.showContent(); + }); + } + + private void getContent() { + mBinding.progress.showProgress(); + mSiteViewModel.categoryContent(getTypeId(), "1", true, new HashMap<>()); + } +} diff --git a/app/src/main/java/com/fongmi/bear/utils/Notify.java b/app/src/main/java/com/fongmi/bear/utils/Notify.java index d8074c0c2..4124468a4 100644 --- a/app/src/main/java/com/fongmi/bear/utils/Notify.java +++ b/app/src/main/java/com/fongmi/bear/utils/Notify.java @@ -13,7 +13,7 @@ import androidx.appcompat.app.AlertDialog; import com.fongmi.bear.App; import com.fongmi.bear.R; -import com.fongmi.bear.databinding.DialogProgressBinding; +import com.fongmi.bear.databinding.ViewProgressBinding; import com.google.android.material.dialog.MaterialAlertDialogBuilder; public class Notify { @@ -54,7 +54,7 @@ public class Notify { } public static void progress(Context context) { - DialogProgressBinding binding = DialogProgressBinding.inflate(LayoutInflater.from(context)); + ViewProgressBinding binding = ViewProgressBinding.inflate(LayoutInflater.from(context)); get().mProgress = new MaterialAlertDialogBuilder(context).setView(binding.getRoot()).create(); get().mProgress.getWindow().setBackgroundDrawableResource(android.R.color.transparent); get().mProgress.show(); diff --git a/app/src/main/java/com/github/catvod/crawler/JarLoader.java b/app/src/main/java/com/github/catvod/crawler/JarLoader.java index b64cae4d5..c9440f1c5 100644 --- a/app/src/main/java/com/github/catvod/crawler/JarLoader.java +++ b/app/src/main/java/com/github/catvod/crawler/JarLoader.java @@ -4,7 +4,6 @@ import android.content.Context; import com.fongmi.bear.App; import com.fongmi.bear.utils.FileUtil; -import com.orhanobut.logger.Logger; import org.json.JSONObject; @@ -51,7 +50,7 @@ public class JarLoader { if (classInit != null) { Method method = classInit.getMethod("init", Context.class); method.invoke(classInit, App.get()); - Logger.d("自定義爬蟲代碼加載成功!"); + SpiderDebug.log("自定義爬蟲代碼加載成功!"); try { Class proxy = classLoader.loadClass("com.github.catvod.spider.Proxy"); proxyFun = proxy.getMethod("proxy", Map.class); diff --git a/app/src/main/java/com/github/catvod/crawler/SpiderDebug.java b/app/src/main/java/com/github/catvod/crawler/SpiderDebug.java index a81d4ae71..e7bf0e808 100644 --- a/app/src/main/java/com/github/catvod/crawler/SpiderDebug.java +++ b/app/src/main/java/com/github/catvod/crawler/SpiderDebug.java @@ -13,4 +13,8 @@ public class SpiderDebug { public static void log(String msg) { Logger.t(TAG).d(msg); } + + public static void json(String msg) { + Logger.t(TAG).json(msg); + } } diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index 1154778dc..bea68d8f8 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -6,7 +6,7 @@ @@ -48,8 +48,8 @@ android:textColor="@color/white" android:textSize="24sp" /> - @@ -60,6 +60,6 @@ android:layout_height="match_parent" android:nestedScrollingEnabled="false" /> - + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml index 3a3f9e77f..97f5b07c8 100644 --- a/app/src/main/res/layout/activity_splash.xml +++ b/app/src/main/res/layout/activity_splash.xml @@ -20,31 +20,24 @@ tools:alpha="1" /> + android:alpha="0" + android:gravity="center" + android:orientation="vertical" + tools:alpha="1"> - + + android:textSize="18sp" /> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_vod.xml b/app/src/main/res/layout/activity_vod.xml new file mode 100644 index 000000000..4cde95309 --- /dev/null +++ b/app/src/main/res/layout/activity_vod.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + diff --git a/app/src/main/res/layout/fragment_vod.xml b/app/src/main/res/layout/fragment_vod.xml new file mode 100644 index 000000000..305887034 --- /dev/null +++ b/app/src/main/res/layout/fragment_vod.xml @@ -0,0 +1,14 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_progress.xml b/app/src/main/res/layout/view_progress.xml similarity index 100% rename from app/src/main/res/layout/dialog_progress.xml rename to app/src/main/res/layout/view_progress.xml