update:增加刷新,更换背景颜色
fix bug:
This commit is contained in:
2021-03-02 16:25:11 +08:00
parent 2392d26b58
commit 527587b926
11 changed files with 186 additions and 24 deletions

View File

@@ -1,26 +1,42 @@
package com.uiui.videoplayer.activity;
import androidx.annotation.NonNull;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.recyclerview.widget.DefaultItemAnimator;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.SimpleItemAnimator;
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
import android.Manifest;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.PorterDuff;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.text.SpannableString;
import android.text.Spanned;
import android.text.style.ForegroundColorSpan;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.widget.TextView;
import com.uiui.videoplayer.R;
import com.uiui.videoplayer.base.RecycleGridLayoutManager;
import com.uiui.videoplayer.base.SpacesItemDecoration;
import com.uiui.videoplayer.adapter.VideoAdapter;
import com.uiui.videoplayer.utils.ToastUtil;
import java.io.File;
import java.util.ArrayList;
@@ -32,9 +48,12 @@ public class MainActivity extends AppCompatActivity {
String[] permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE};
private RecyclerView recyclerView;
private TextView tips;
private SwipeRefreshLayout refreshLayout;
private VideoAdapter adapter;
private RecycleGridLayoutManager mManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -68,7 +87,19 @@ public class MainActivity extends AppCompatActivity {
}
private void initView() {
initActionBar();
tips = findViewById(R.id.tips);
refreshLayout = findViewById(R.id.swipeRefreshLayout);
refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
ScanTask scanTask = new ScanTask();
scanTask.execute();
}
});
refreshLayout.setRefreshing(true);
recyclerView = findViewById(R.id.recyclerView);
((SimpleItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
int orientation = getResources().getConfiguration().orientation;
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
mManager = new RecycleGridLayoutManager(MainActivity.this, 3);
@@ -82,6 +113,34 @@ public class MainActivity extends AppCompatActivity {
((DefaultItemAnimator) recyclerView.getItemAnimator()).setSupportsChangeAnimations(false);
}
private void initActionBar() {
setToolbarCustomTheme();
//显示返回按钮
ActionBar actionBar = getSupportActionBar();
if (actionBar != null) {
actionBar.setHomeButtonEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
SpannableString spannableString = new SpannableString(getString(R.string.app_name));
ForegroundColorSpan colorSpan = new ForegroundColorSpan(getResources().getColor(R.color.defaultColor));
spannableString.setSpan(colorSpan, 0, spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
actionBar.setTitle(spannableString);
}
// 系统 6.0 以上 状态栏白底黑字的实现方法
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
//自定义颜色返回按钮
protected void setToolbarCustomTheme() {
Drawable upArrow = ContextCompat.getDrawable(this, R.drawable.abc_ic_ab_back_material);
if (upArrow != null) {
upArrow.setColorFilter(ContextCompat.getColor(this, R.color.defaultColor), PorterDuff.Mode.SRC_ATOP);
if (getSupportActionBar() != null) {
getSupportActionBar().setHomeAsUpIndicator(upArrow);
}
}
}
// private String[] getFolder(String folderPath) {
//
// }
@@ -123,7 +182,7 @@ public class MainActivity extends AppCompatActivity {
}
private static final String[] extension = new String[]{
".3gp", ".avi", ".flv", ".mkv", ".mov", ".mp4", ".webm"
".3gp", ".avi", ".flv", ".mkv", ".mov", ".mp4", ".webm"
};
private static boolean isVideoFormat(String filePath) {
@@ -186,9 +245,17 @@ public class MainActivity extends AppCompatActivity {
protected void onPostExecute(List<String> strings) {
super.onPostExecute(strings);
Log.e("ScanTask", "onPostExecute: " + strings);
adapter = new VideoAdapter(MainActivity.this, strings);
if (strings.size() == 0) {
tips.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
} else {
tips.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
adapter = new VideoAdapter(MainActivity.this, strings);
// recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
recyclerView.setAdapter(adapter);
recyclerView.setAdapter(adapter);
}
refreshLayout.setRefreshing(false);
}
}
@@ -219,4 +286,42 @@ public class MainActivity extends AppCompatActivity {
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
/**
* 监听标题栏按钮点击事件.
*
* @param item 按钮
* @return 结果
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
//返回按钮点击事件
switch (item.getItemId()) {
case android.R.id.home:
if (System.currentTimeMillis() - mPreClickTime > 1000) {
ToastUtil.show("再按一次,退出");
mPreClickTime = System.currentTimeMillis();
} else {
finish();
}
break;
case R.id.refresh:
refreshLayout.setRefreshing(true);
ScanTask scanTask = new ScanTask();
scanTask.execute();
break;
}
return super.onOptionsItemSelected(item);
}
private long mPreClickTime;
}

View File

@@ -21,6 +21,7 @@ import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.RecyclerView;
import com.bumptech.glide.Glide;
import com.shehuan.niv.NiceImageView;
import com.uiui.videoplayer.R;
import com.uiui.videoplayer.activity.ActivityTikTok;
import com.uiui.videoplayer.utils.ToastUtil;
@@ -153,6 +154,11 @@ public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.VideoHolder>
return name;
}
@Override
public int getItemViewType(int position) {
return position;
}
/**
* 判断Activity是否Destroy
*
@@ -168,7 +174,7 @@ public class VideoAdapter extends RecyclerView.Adapter<VideoAdapter.VideoHolder>
}
static class VideoHolder extends RecyclerView.ViewHolder {
ImageView video_image;
NiceImageView video_image;
TextView title, duration;
ConstraintLayout root;