Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.52 KB | None | 0 0
  1. public class MainActivity extends AppCompatActivity implements GridViewClickListenerSetter.PermissionCheckOnClicked{
  2. private static final String LOG = "myLog";
  3.  
  4. @Override
  5. protected void onCreate(Bundle savedInstanceState) {
  6. super.onCreate(savedInstanceState);
  7. setContentView(R.layout.activity_main);
  8.  
  9. ViewPager viewPager = findViewById(R.id.viewPager);
  10. MainFragmentPagerAdapter adapter = new MainFragmentPagerAdapter(this, getSupportFragmentManager());
  11. viewPager.setAdapter(adapter);
  12.  
  13. TabLayout tabLayout = findViewById(R.id.tabLayout);
  14. tabLayout.setupWithViewPager(viewPager);
  15.  
  16. verifyStoragePermissions();
  17. }
  18.  
  19. // Storage Permissions
  20. private static final int REQUEST_EXTERNAL_STORAGE = 1;
  21. private static String[] PERMISSIONS_STORAGE = {
  22. Manifest.permission.READ_EXTERNAL_STORAGE,
  23. Manifest.permission.WRITE_EXTERNAL_STORAGE
  24. };
  25.  
  26. private void verifyStoragePermissions() {
  27. // Check if we have write permission
  28. int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
  29.  
  30. if (permission != PackageManager.PERMISSION_GRANTED) {
  31. // We don't have permission so prompt the user
  32. ActivityCompat.requestPermissions(
  33. this,
  34. PERMISSIONS_STORAGE,
  35. REQUEST_EXTERNAL_STORAGE
  36. );
  37. }
  38. }
  39.  
  40. @Override
  41. public void itemViewClicked() {
  42. verifyStoragePermissions();
  43. }
  44.  
  45. public class FragmentBeginner extends Fragment {
  46.  
  47. private BooksAdapter booksAdapter;
  48. private boolean isCISlanguage = false;
  49.  
  50. @Override
  51. public void onCreate(@Nullable Bundle savedInstanceState) {
  52. super.onCreate(savedInstanceState);
  53. String lang = Locale.getDefault().getLanguage();
  54. if(lang.equals("ru") || lang.equals("kk") || lang.equals("kz") || lang.equals("uk")){
  55. booksAdapter = new BooksAdapter(getActivity(), BooksUrls.getBeginnerRu());
  56. isCISlanguage = true;
  57. }else{
  58. booksAdapter = new BooksAdapter(getActivity(), BooksUrls.getBeginnerEng());
  59. isCISlanguage = false;
  60. }
  61. }
  62.  
  63. public FragmentBeginner() {
  64. }
  65.  
  66.  
  67. @Nullable
  68. @Override
  69. public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
  70. View view = inflater.inflate(R.layout.fragment_beginner, container, false);
  71. GridView gridView = view.findViewById(R.id.beginnerGridView);
  72. gridView.setAdapter(booksAdapter);
  73. gridView.setOnItemClickListener(itemClickListener);
  74. return view;
  75. }
  76.  
  77. GridViewClickListenerSetter itemClickListener = new GridViewClickListenerSetter(getActivity(), isCISlanguage, ((MainActivity)getActivity()));
  78.  
  79. public class GridViewClickListenerSetter implements GridView.OnItemClickListener{
  80.  
  81. private final Context context;
  82. private boolean isCISlanguage = false;
  83. private PermissionCheckOnClicked listener;
  84.  
  85. public GridViewClickListenerSetter(Context context, boolean isCISlanguage, PermissionCheckOnClicked listener){
  86. this.context = context;
  87. this.listener = listener;
  88. this.isCISlanguage = isCISlanguage;
  89. }
  90.  
  91. @Override
  92. public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  93. listener.itemViewClicked();
  94. Book book;
  95. if(isCISlanguage){
  96. book = BooksUrls.getBeginnerRu(position);
  97. }else{
  98. book = BooksUrls.getBeginnerEng(position);
  99. }
  100. context.startService(BookDownloadService.getDownloadService(
  101. context,
  102. book.getUrl(),
  103. Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/"));
  104. }
  105.  
  106. public interface PermissionCheckOnClicked{
  107. void itemViewClicked();
  108. }
  109.  
  110. java.lang.NullPointerException: Attempt to invoke interface method 'void com.studio.houmi.firebasesample.GridViewClickListenerSetter$PermissionCheckOnClicked.itemViewClicked()' on a null object reference
  111. at com.studio.houmi.firebasesample.GridViewClickListenerSetter.onItemClick(GridViewClickListenerSetter.java:27)
  112. at android.widget.AdapterView.performItemClick(AdapterView.java:346)
  113. at android.widget.AbsListView.performItemClick(AbsListView.java:1576)
  114. at android.widget.AbsListView$PerformClick.run(AbsListView.java:3962)
  115. at android.widget.AbsListView$7.run(AbsListView.java:6042)
  116. at android.os.Handler.handleCallback(Handler.java:739)
  117. at android.os.Handler.dispatchMessage(Handler.java:95)
  118. at android.os.Looper.loop(Looper.java:148)
  119. at android.app.ActivityThread.main(ActivityThread.java:7329)
  120. at java.lang.reflect.Method.invoke(Native Method)
  121. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
  122. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement