I have build video player , it is working fine after installing for first time screen gets blank on first installation (after allowing permission)
this happens only after allowing permission for fist time after that app works fine ..
below is the screen shot of before allowing permission

after allowing permission screen gets blank
below is the screen shot -
If i restart application it start showing all folder that are having videos in it
below it the screen shot (after removing app from ram and opening it again)
here is a code for HomeActivity (MainActivity) code -
public class HomeActivity extends AppCompatActivity {
// ui
RecyclerView mRecyclerView;
TextView titleText;
ImageView backButton;
//var
private static final String TAG = "HomeActivity";
private static final int REQUEST_CODE_PERMISSION = 123;
FolderAdapter mFolderAdapter;
List<String> mFolderList;
FolderViewModel mFolderViewModel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
titleText = findViewById(R.id.top_folder_name);
backButton = findViewById(R.id.back_button);
backButton.setVisibility(View.INVISIBLE);
mFolderViewModel = new ViewModelProvider(this, new FolderViewModelFactory(this.getApplication(),"new awesome param")).get(FolderViewModel.class);
permission();
Toast.makeText(this,"on create",Toast.LENGTH_SHORT).show();
mFolderList = new ArrayList<>();
titleText.setText("Folders");
}
private void subscribeObservers(){
mFolderViewModel.getFolders().observe(this, new Observer<List<String>>() {
@Override
public void onChanged(List<String> Folders) {
mFolderAdapter.setFolder(Folders);
}
});
}
private void initRecyclerView() {
mRecyclerView = findViewById(R.id.folder_recyclerView);
mFolderAdapter = new FolderAdapter(this);
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this,RecyclerView.VERTICAL,false);
subscribeObservers();
mRecyclerView.setAdapter(mFolderAdapter);
mRecyclerView.setLayoutManager(linearLayoutManager);
Toast.makeText(HomeActivity.this,"yes",Toast.LENGTH_SHORT).show();
}
private void permission() {
if(ContextCompat.checkSelfPermission(getApplicationContext(),
Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED){
ActivityCompat.requestPermissions(HomeActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CODE_PERMISSION);
}
else{
Toast.makeText(HomeActivity.this,"permission 1",Toast.LENGTH_SHORT).show();
//setting observer in recyclerview
initRecyclerView();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode == REQUEST_CODE_PERMISSION){
if(grantResults[0] == PackageManager.PERMISSION_GRANTED){
Toast.makeText(HomeActivity.this, "Permission Granted 2", Toast.LENGTH_SHORT).show();
//setting observer in recyclerview
initRecyclerView();
}
else{
ActivityCompat.requestPermissions(HomeActivity.this,
new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},REQUEST_CODE_PERMISSION);
}
}
}
}
I have used MVVM architecture .
thank you in advance

