content: /*
   * Copyright (C) 2015 Bilibili
   * Copyright (C) 2015 Zhang Rui <bbcallen@gmail.com>
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  
  package com.alanwang4523.a4ijkplayerdemo.activities;
  
  import android.os.Bundle;
  import android.text.TextUtils;
  
  import com.squareup.otto.Subscribe;
  
  import java.io.File;
  import java.io.IOException;
  
  import com.alanwang4523.a4ijkplayerdemo.R;
  import com.alanwang4523.a4ijkplayerdemo.application.AppActivity;
  import com.alanwang4523.a4ijkplayerdemo.application.Settings;
  import com.alanwang4523.a4ijkplayerdemo.eventbus.FileExplorerEvents;
  import com.alanwang4523.a4ijkplayerdemo.fragments.FileListFragment;
  
  import androidx.fragment.app.Fragment;
  import androidx.fragment.app.FragmentTransaction;
  
  public class FileExplorerActivity extends AppActivity {
      private Settings mSettings;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
  
          if (mSettings == null) {
              mSettings = new Settings(this);
          }
  
          String lastDirectory = mSettings.getLastDirectory();
          if (!TextUtils.isEmpty(lastDirectory) && new File(lastDirectory).isDirectory())
              doOpenDirectory(lastDirectory, false);
          else
              doOpenDirectory("/", false);
      }
  
      @Override
      protected void onResume() {
          super.onResume();
  
          FileExplorerEvents.getBus().register(this);
      }
  
      @Override
      protected void onPause() {
          super.onPause();
  
          FileExplorerEvents.getBus().unregister(this);
      }
  
      private void doOpenDirectory(String path, boolean addToBackStack) {
          Fragment newFragment = FileListFragment.newInstance(path);
          FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
  
          transaction.replace(R.id.body, newFragment);
  
          if (addToBackStack)
              transaction.addToBackStack(null);
          transaction.commit();
      }
  
      @Subscribe
      public void onClickFile(FileExplorerEvents.OnClickFile event) {
          File f = event.mFile;
          try {
              f = f.getAbsoluteFile();
              f = f.getCanonicalFile();
              if (TextUtils.isEmpty(f.toString()))
                  f = new File("/");
          } catch (IOException e) {
              e.printStackTrace();
          }
  
          if (f.isDirectory()) {
              String path = f.toString();
              mSettings.setLastDirectory(path);
              doOpenDirectory(path, true);
          } else if (f.exists()) {
              VideoActivity.intentTo(this, f.getPath(), f.getName());
          }
      }
  }
  