ProgressLayout icon indicating copy to clipboard operation
ProgressLayout copied to clipboard

Progress Not showing when i declare progress layout as static

Open kp5293 opened this issue 7 years ago • 0 comments

Hello I used your library with with view pager. when audio is playing and swipe then its working perfect but when u again swipe on previous progress will be continue. please help me. My Code Is As below

DisplayPictureDetail.DpFragmentPagerAdapter dpFragmentPagerAdapter; ViewPager viewPager; @SuppressLint("StaticFieldLeak") Toolbar mToolbar; private static ArrayList<CategoryModel> DpDetailArl; int selectedPosition = 0, pos; static String Title, CatType, downloadUrl; @SuppressLint("StaticFieldLeak") static RelativeLayout mRowDetailLayout;

static int currentDuration = 0, mIntFavCounter;
static Activity activity;
DatabaseHandler db;
static MediaPlayer mediaPlayer;
FloatingActionButton mFabRingtone, mFabNotification, mFabAlarm;
SparkButton mImgFavCounter;
TextView mRowtxtFav;
int CurrentId, CurrentDownloadCount;
static CategoryModel currentTrack = null;
static boolean isPlaying = false;
static ProgressLayout progressLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_pager);
    activity = DisplayPictureDetail.this;
    if (Connectivity.getInstance(DisplayPictureDetail.this).isOnline()) {
        Log.d("RESULT", "------------------DP DETAIL Page Start------------------");

        viewPager = (ViewPager) findViewById(R.id.pager);
        mImgFavCounter = (SparkButton) findViewById(R.id.heart_button);
        mRowtxtFav = (TextView) findViewById(R.id.mRowtxtFav);
        mToolbar = (Toolbar) findViewById(R.id.mToolbar);
      
        setSupportActionBar(mToolbar);
        mediaPlayer = new MediaPlayer();
        db = new DatabaseHandler(activity);
        if (mToolbar != null) {
            mToolbar.setTitleTextColor(Color.WHITE);
            mToolbar.setSubtitleTextColor(Color.WHITE);
            mToolbar.setBackgroundColor(Color.TRANSPARENT);
            getSupportActionBar().setTitle("Title");
        }

        Bundle extra = getIntent().getBundleExtra("extra");
        if (extra != null) {
            DpDetailArl = (ArrayList<CategoryModel>) extra.getSerializable("objects");
            pos = getIntent().getIntExtra("position", 0);
        }

        if (DpDetailArl != null) {
            dpFragmentPagerAdapter = new DpFragmentPagerAdapter(getSupportFragmentManager());
            viewPager.setAdapter(dpFragmentPagerAdapter);
            dpFragmentPagerAdapter.notifyDataSetChanged();
        } else {
            Toast.makeText(activity, "No Data Found..", Toast.LENGTH_SHORT).show();
        }
        setCurrentItem(pos);

        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                if (mediaPlayer.isPlaying()) {
                    mediaPlayer.stop();
                    mediaPlayer.reset();
                    isPlaying = false;
                }
            }

            @Override
            public void onPageSelected(int position) {
                displayMetaInfo(position);
                GradientDrawable gd1 = Config.generateGradiantRandom(DisplayPictureDetail.this);
                viewPager.setBackground(gd1);
                mRowDetailLayout.setBackground(gd1);
            }

            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });
                

    } else {

// new AlertDialog(DisplayPictureDetail.this, getString(R.string.alert_title), getString(R.string.inernet_alert_message), // getString(R.string.alert_pos_btn), new NavigationMainActivity()); } }

private void setCurrentItem(int position) {
    viewPager.setCurrentItem(position, false);
    displayMetaInfo(position);
    selectedPosition = position;
}

private void displayMetaInfo(int position) {
    CategoryModel image = DpDetailArl.get(position);
    downloadUrl = image.getUrl();
    CurrentId = image.getId();
    CurrentDownloadCount = image.getDownloads();
      
}

public void onBackPressed() {
    super.onBackPressed();
    if (mediaPlayer != null) {
        mediaPlayer.stop();

    }
}

public void onPause() {
    super.onPause();
    if (mediaPlayer.isPlaying()) {
        mediaPlayer.pause();
    }
}

public void onStop() {
    super.onStop();
    if (mediaPlayer.isPlaying()) {
        mediaPlayer.stop();
        mediaPlayer.reset();
    }
}

public void onDestroy() {
    super.onDestroy();
    if (mediaPlayer.isPlaying()) {
        mediaPlayer.stop();
        mediaPlayer.reset();
    }
}

public class DpFragmentPagerAdapter extends FragmentPagerAdapter {

    public DpFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return DpDetailArl.size();
    }

    @Override
    public Fragment getItem(int position) {
        SwipeFragment fragment = new SwipeFragment();
        return SwipeFragment.newInstance(position);
    }
}

public static class SwipeFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {

        View swipeView = inflater.inflate(R.layout.display_picture_detail, container, false);

        Bundle args = getArguments();
        final int position = args.getInt("position");

        final DatabaseHandler db = new DatabaseHandler(getActivity());
        final ImageView ivIcon;
        final int SECOND_MS = 1000;
        final Handler mHandler = new Handler();

        final Runnable mRunnable = new Runnable() {
            @Override
            public void run() {
                currentDuration += 1;
                mHandler.postDelayed(this, SECOND_MS);
            }
        };
        final CategoryModel track = DpDetailArl.get(position);
        mRowDetailLayout = (RelativeLayout) swipeView.findViewById(R.id.mRowDetailLayout);
        progressLayout = (ProgressLayout) swipeView.findViewById(R.id.progressLayout);
        ivIcon = (ImageView) swipeView.findViewById(R.id.ivIcon);

        progressLayout.setMaxProgress(DpDetailArl.get(position).getDurationInSec());

        Title = DpDetailArl.get(position).getName();
        CatType = DpDetailArl.get(position).getCat_type();

        ivIcon.setBackgroundResource(R.drawable.ic_play_white);

        if (currentTrack != null && currentTrack == track) {
            ivIcon.setBackgroundResource(isPlaying ? R.drawable.ic_pause_white : R.drawable.ic_play_white);
            progressLayout.setCurrentProgress(currentDuration);
            if (isPlaying) progressLayout.start();
        } else {
            progressLayout.cancel();
        }
        ivIcon.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String AUDIO_PATH = DpDetailArl.get(position).getUrl();

                if (track != currentTrack) {
                    currentTrack = track;
                    mHandler.removeCallbacks(mRunnable);
                    currentDuration = 0;
                }
                if (!progressLayout.isPlaying()) {
                    isPlaying = true;
                    try {
                        mediaPlayer.reset();
                        if (mediaPlayer != null) {
                            mediaPlayer.setDataSource(AUDIO_PATH);
                            mediaPlayer.prepare();
                            mediaPlayer.start();
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    progressLayout.start();
                    mHandler.postDelayed(mRunnable, 0);
                    ivIcon.setBackgroundResource(R.drawable.ic_pause_white);
                    int UpdateViewCount = DpDetailArl.get(position).getViews() + 1;
                    Functions.updateDpCounter(activity, Config.KEY_ID, String.valueOf(DpDetailArl.get(position).getId()),
                            Config.KEY_VIEWS, String.valueOf(UpdateViewCount), Config.VIEWS_COUNTER_UPDATE_URL);

                } else {

                    isPlaying = false;
                    mediaPlayer.stop();

                    progressLayout.setCurrentProgress(0);
                    progressLayout.cancel();
                    mHandler.removeCallbacks(mRunnable);
                    ivIcon.setBackgroundResource(R.drawable.ic_play_white);

// ivIcon.setScaleType(ImageView.ScaleType.CENTER_INSIDE);

                }
            }
        });
        progressLayout.setProgressLayoutListener(new ProgressLayoutListener() {
            @Override
            public void onProgressCompleted() {
                progressLayout.stop();
               ivIcon.setBackgroundResource(R.drawable.ic_play_white);
            }

            @Override
            public void onProgressChanged(int seconds) {
                Log.d("Result", "Pogress Mili:-" + seconds);
            }
        });


        return swipeView;
    }


    static SwipeFragment newInstance(int position) {
        SwipeFragment swipeFragment = new SwipeFragment();
        Bundle args = new Bundle();
        args.putInt("position", position);
        swipeFragment.setArguments(args);
        return swipeFragment;
    }

}

kp5293 avatar Apr 11 '18 05:04 kp5293