• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Are Antivirus apps really needed?

Are they really needed for the android OS??

Still quite new to android. The only things I've been downloading are from the Play Store and I can't see android letting apps from there official store give me any viruses, can they? Also been streaming things online like movies, not exactly from things like Netflix or Hulu so idk if we can get viruses from streaming from unofficial websites. But if only downloading from the play store I'm wondering if I can save my phones storage and ram by not getting an Antivirus app.

Permission Problems passwd adduser addgroup usermod etc.

Hello.

I found that a lot of people have problems like:

usermod: failure while writing changes to /etc/group

or

passwd: u:r:init:s0 is not authorized to change the password of ubuntu

or

Authentication token manipulation error

or

groupadd: failure while writing changes to /etc/group
adduser: `/usr/sbin/groupadd -g 1001 ich' returned error code 10. Exiting.

And the problem, in my case, was one line in the "bootscript.sh":

$bbox mount -o bind /sys/fs/selinux $mnt/selinux.

You don't need that line.

$bbox mount -o bind /sys/fs $mnt/sys/fs
if [ $? -ne 0 ];then error_exit "Unable to mount $mnt/sys/fs!"; fi

is enough.

There is nothing in the /selinux- or /sys/fs/selinux-directory (on the Linux-side), but now it works. More or less. There are still other problems to fix, e.g. "sudo [user] [command]". There is still this problem:

sudo: PERM_ROOT: setresuid(0, -1, -1): Permission denied

But that was the solution for the permission (SELinux???) problems named above.

[ROM] - v8.1.0 GamerROM Orion v1.00 For NVIDIA Shield Tablet! Released: 05/21/2019

nv-shield-tablet-lollipop-wcontroller-0-0_orig.png

Welcome to:


GamerROM Orion
For the NVIDIA Shield Tablet


Welcome everyone today i'm proud to announce that i finally decided to port GamerROM Orion to the NVIDIA Shield Tablet, my goal is to bring the best gaming os to many devices as i can and give more to the user then nothing at all.

Their are many ways you can play a game, but GamerROM put game into the next gear so let's talk about features.

Features:


  • OTA Updates (Over-The-Air) Supported get updates easily without a breeze and view the thread with no issues

  • Fast & Secured OS to keep your personal data from thief's.

  • Play Games at the highest frame rate possible.

  • High Quality Surround Sound (experience the best audio quality you never heard before).

  • Pre-Installed Root Access (We install root immediately once you flash our OS)

  • Awesome RAM Management (OS uses less ram to give you more to play those awesome intensive apps and games).

  • Cast Your Games any chromecast up to 1080p Resolution at 60fps

  • Unique Features that you never seen before in GamerROM 11 on the S4!
& Much More!

IMPORTANT NOTICE: gapps are not included in this build, however we recommend you to NOT install any gapps package above the "Full" package as some apps that we implemented may get removed ad this is considered altering the OS and we will ignore bug reports. as a DISCLAIMER: you are 100% responsible if any damages occurs during the installation process or any damages to your device when you install this OS!

OS Released on: 05/21/2019

Version: v1.00

Download: https://play.google.com/store/apps/details?id=com.gamerrom.downloader

Play store suggestion.

It'd be pretty neat if the play store told us what apps we've already downloaded (specifically games) when searching for new games to play.

Had a lot of free time on my hands as of late so I've been scouring the play store trying different games but I've been mistakenly downloading games I've already previously had. Nowhere on the apps page does it say I've downloaded this app already. Some indication next to the install button would be nice.

Help Connection Issue

Hi. I'm having wifi connection issues only on my home wifi network only. When I am at home, my phone will frequently appear to be connected to the wifi yet will be unable to load anything (despite staying around 2 connectivity bars). Quickly toggling wifi on and off temporarily fixes the issue. This only ever happens on my home wifi, and for some reason distance from the router plays a big role. If I'm sitting right next to router the issue does not exist, but even moving to the next room over (still full bars) will cause the issue the resurface. Interestingly rebooting the phone in safe mode also completely fixes the issue. I noticed normally my phone jumps between 2.4ghz and 5ghz bands frequently when booted normally, but in safe mode in remains constantly at 2.4ghz. Perhaps this has something to do with it? I've considered factory reset but its not clear that would fix the problem. Problem is new in past year, previously device worked perfectly. Please help.

Help call blocker

I'm looking for a call blocker that will really work. I've had several over the last couple of years and not been satisfied.

I have a Samsung Galaxy 6. If I block a number in the native phone app, it still rings and rings when that party calls. After 5 rings the call will terminate, but the five rings are annoying. And if I don't recognize the number I am liable to answer the call. So what good is the blocker?!

I have a third party app called Call Blocker that essentially does the same thing but it will sometimes identify the caller. That's a plus but not a big one.

I used to have an app called Whoscall, which, IIRC, blocked the call immediately but it was so full of ads I couldn't stand it...in fact my Verizon rep compared it to a virus.

Is there a third party app that will keep a blocked number from ringing through and perhaps prevent that blocked party from leaving a voicemail as well? Not dead set on that last bit but there's got to something out there that will handle this problem competently...better than what I've tried so far.

Thoughts?

Advice appreciated..

How can I switch to a different Google Drive account?

Can someone please tell me how to switch to a different Google Drive account on my phone? A similar question was asked about five years ago here, but the answer posted there doesn't work for me.

To elaborate, I have two accounts registered on my Android phone. Let's call them A and B. When I open Google Drive, I see the Google Drive files associated with Account A, but not those associated with Account B. I can't figure out how to switch over to Account B.

-TC

"This device was reset" Cannot use older ATT galaxy S7 Edge. Solutions?

Hello all.
I recently received a used at&t Galaxy S7 (variant SM-G935A) that hadn't been used in over a year, and was looking forward to using it, when I encountered this message:
"This device was reset, To continue, sign in with a google account that was previously synced on this device"
I tried numerous sign in's all to no avail, and the previous owner doesn't even remember the password, (Probably why I was given this phone) so now I am stuck with a beautiful looking brick. They said that had done a "factory reset" So I assumed it would be blank and that I could sign in with my google account, but that is not working.

Does anyone know how to overcome this problem?
thanks!
PM

Mobile Data issues relating to Sim Card

Have an HTC 10 that recently had some issues and I had to use an iPhone 5 as a temporary phone. I fixed my HTC and once I put my sim card back in, it would not connect to any 4G or LTE networks. I would have cellular signal and could make phone calls and send texts, but anything that used data would not work. I checked all settings on the device to be sure there was no setting turned off. Once I had checked all settings, I borrowed a family members sim card from their phone and was able to connect to 4G and LTE networks with no problems. Once I was able to get the phone connected, I removed their sim card and replaced it with the original, and it would not connect anymore so I went to an AT&T store to get a new sim card. They replaced the sim card, but the problem still exists and the phone refuses to connect to 4G or LTE but will connect to the cellular network.

Help [HELP!] I have an adware app(s) on my phone. And it won't go away. Please help me permanently delete

I recently got a free American Assistance lifeline phone. The bran is True Slim and A.A. is the service provider. I need help permanently removing app(s) that come with the phone. I'm not sure which app(s) I should get rid of. Except one; DAbrowser. Whenever I uninstall anything it re-installs itself. Please help me, I need to get rid of at least DAbrowser. That thing is clearly adware. And extra annoying adware at that. These aren't in browser ads either. They're ads that pop up no matter what apps are or aren't open. They make it super annoying to use the phone for anything. The setting; 'Allow installation of apps from unknown sources' keeps turning on by itself in front of my eyes. And the play store opens it's self on a page for an app it wants me to install. Even the lock screen tries to shill to me. And that open at weird times. I have tried a lot to fix this.
BTW the questionable apps I have on my phone are:
DAbrowser
Android Innovation
com.android.extension.hybrid.app
Proxy
DeviceOptimize
Android System WebView
Atci_service
Auto Dialer
Basic Daydreams
Bluetooth Share
BSPTelephonyDevTool
CaptivePortalLogin
Certificate Installer
com.android.backupconfirm
com.android.sharedstoragebackup
com.mediatek
com.mediatek.batterywaring
Common Data Service (Which has a blue winking android for an icon)
ConfigUpdater
Data Protection
Device Provisioner
DRM Protected Content Storage
EnginerMode
Factory test
FotaProvider
Fused Location
FwkPlugin
Gsensor Calibrate
HelperDF
ImeiModify
LocationEM2
MmsService
Mobile anti-theft
MTK Android Suite Daemon
MTK NLP
MTK Thermal Manager
MTKLogger
Omacp
One Time Init
ProxyHandler
VpnDialogs
Wireless Update
YGPS
Which of these apps should I get rid of? Which one do I need? How should I get rid of them, and keep them gone?
Are there any other subs I should ask? I really need help with this.
Thanks for any feedback.

Lens App on G7

Hi everybody,

When I got my G7 about couple weeks ago phone gave me notifications about updating a bunch of apps. One of them was Lens (I assume it is Google camera app). I also got two more updates for this app during first two weeks.

When I try to start Lens I get this message:

Thanks for updating. Lens will be available soon.

Please try again later

Anybody else has this app on their G7 and gets this message?

Taking pictures with multiple cameras synchronously

Hi,

does anyone have experience wih using the new multi-camera API in terms of taking pictures with multiple forward facing cameras at once?

According to the documentation this should be possible, but I guess it is up to the manufacturer to provide this functionality.

For my project I need to take he images from same facing cameras at exactly the same time (hardware synchronized).

Has anyone achieved this?

Any help would be appreciated!

Contact Favorites disappearing

Contact Favorites disappear every night. Favorites update with new Contacts during the day as I use my phone but in the morning they have disappeared. This has been going on for several weeks and never used to happen. I've had this phone for a couple of years I've changed nothing in my Contact software that I can think of.

Moto X Pure Edition running Android 7.0

Any ideas?

Thanks,

Jeff

Unable to refresh BrowseFragment listrow successfully after making change to json data

Hi,

I am building an android tv app with a BrowseFragment that displays a listrow with data pulled from a php created JSON file (data is got from MySQL table). There is a check that is run to see if any changes to the database and after which when the change is detected, the BrowseFragment is to be refreshed reloading the json data.

I attempted the refresh from both the BrowseFragments parent activity and the fragment itself (I attempted to use the clear() and addall() functions of ArrayObjectAdapter) and there would just be a flash/blinking but the information would not be refreshed. The only way I have been able to update the listrow has been to restart the app.

How can I successfully update/refresh the BrowseFragment list row?

I have placed the code for my MainFragment and BrowseFragment

Java:
public class MainFragment extends BrowseSupportFragment
        implements LoaderManager.LoaderCallbacks<LinkedHashMap<String, List<Video>>>{

    private static final int BACKGROUND_UPDATE_DELAY = 300;

    private static final String TAG = MainFragment.class.getSimpleName();

    static final int GRID_ITEM_WIDTH = 300;
    private static final int GRID_ITEM_HEIGHT = 200;
    private final Handler mHandler = new Handler();
    //private ArrayObjectAdapter mRowsAdapter;
    private CustumArrayObjectAdapter mRowsAdapter;
    private Drawable mDefaultBackground;
    private DisplayMetrics mMetrics;
    private Runnable mBackgroundTask;
    private Uri mBackgroundURI;
    private BackgroundManager mBackgroundManager;
    private CustomListRow mGridItemListRow;
    private LoaderManager mLoaderManager;

    ArrayList<Video> mItems = null;
    private ArrayList<CustomListRow> mVideoListRowArray;
    private static final int VIDEO_ITEM_LOADER_ID = 1;

/**
    // Init
    private Handler handler = new Handler();
    private Runnable runnable = new Runnable() {
        @Override
        public void run() {
            updateChannels();
            handler.postDelayed(this, 10000);
        }
    };

**/






    @Override
    public void onActivityCreated(Bundle savedInstanceState) {


        // Final initialization, modifying UI elements.
        super.onActivityCreated(savedInstanceState);

        // Prepare the manager that maintains the same background image between activities.
        prepareBackgroundManager();

        setupUIElements();

        loadRows();
        setRows();

        mBackgroundURI = Uri.parse("http://192.168.0.4/test/images/bkground/background1.jpg");

;
        mLoaderManager = LoaderManager.getInstance(this);
        mLoaderManager.initLoader(VIDEO_ITEM_LOADER_ID, null, this);

        setupEventListeners();
        prepareEntranceTransition();

        updateRecommendations();


        /**
        //Start
        handler.postDelayed(runnable, 10000);

         **/


    }

    @Override
    public void onDestroy() {
        mHandler.removeCallbacks(mBackgroundTask);
        mBackgroundManager = null;
        super.onDestroy();
    }

    /**

    public void updateChannels(){

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(ApiInterface.JSONURL)
                .addConverterFactory(ScalarsConverterFactory.create())
                .build();

        ApiInterface api = retrofit.create(ApiInterface.class);

        Call<String> call = api.getString();

        call.enqueue(new Callback<String>() {
            @Override
            public void onResponse(Call<String> call, Response<String> response) {
                Log.i("Responsestring", response.body().toString());
                //Toast.makeText()
                if (response.isSuccessful()) {
                    if (response.body() != null) {
                        Log.i("onSuccess", response.body().toString());

                        String jsonresponse = response.body().toString();
                        chkResponse(jsonresponse);

                    } else {
                        Log.i("onEmptyResponse", "Returned empty response");//Toast.makeText(getContext(),"Nothing returned",Toast.LENGTH_LONG).show();
                    }
                }
            }

            @Override
            public void onFailure(Call<String> call, Throwable t) {

            }
        });

    }

    private void chkResponse(String response){

        try {
            //getting the whole json object from the response
            JSONObject obj = new JSONObject(response);
            if(obj.optString("update").equals("true"))
            {

                try {


     getLoaderManager().restartLoader(0, null, this);


     mVideoListRowArray = null;
     mItems = null;



     mLoaderManager.restartLoader(0, null,  this);

     mLoaderManager = LoaderManager.getInstance(this);
     mLoaderManager.initLoader(VIDEO_ITEM_LOADER_ID, null, this);

     setupUIElements();
     loadRows();
     setRows();

     mRowsAdapter.clear();
     mRowsAdapter.addAll(0, mVideoListRowArray);
     mRowsAdapter.replaceAll(0, mVideoListRowArray);


     //Intent intent = new Intent(getActivity(), MainActivity.class);
     //intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
     //startActivity(intent);

                } catch (Exception e)
                {
                    Toast.makeText(this, "Error Refreshing Channel Rows.", Toast.LENGTH_SHORT).show();

                }

            }

        } catch (JSONException e) {
            e.printStackTrace();
        }

    }

     **/






    /**
     @Override
     public void onResume() {

     mCategoryRowAdapter.clear();

     mLoaderManager = LoaderManager.getInstance(this);
     mLoaderManager.initLoader(CATEGORY_LOADER, null, this);


     mCategoryRowAdapter = new ArrayObjectAdapter(new ListRowPresenter());
     setAdapter(mCategoryRowAdapter);
     super.onResume();
     }
     **/

    @Override
    public void onStop() {
        mBackgroundManager.release();
        super.onStop();
    }

    private void prepareBackgroundManager() {
        mBackgroundManager = BackgroundManager.getInstance(getActivity());
        mBackgroundManager.attach(getActivity().getWindow());
        mDefaultBackground = getResources().getDrawable(R.drawable.backgroundtv, null);
        mBackgroundTask = new UpdateBackgroundTask();
        mMetrics = new DisplayMetrics();
        getActivity().getWindowManager().getDefaultDisplay().getMetrics(mMetrics);
    }

    private void setupUIElements() {
        setBadgeDrawable(
                getActivity().getResources().getDrawable(R.drawable.twende, null));
        setTitle(getString(R.string.browse_title)); // Badge, when set, takes precedent over title
        setHeadersState(HEADERS_ENABLED);
        setHeadersTransitionOnBackEnabled(true);

        // Set fastLane (or headers) background color
        setBrandColor(ContextCompat.getColor(getActivity(), R.color.fastlane_background));

        // Set search icon color.
        setSearchAffordanceColor(ContextCompat.getColor(getActivity(), R.color.search_opaque));

        setHeaderPresenterSelector(new PresenterSelector() {
            @Override
            public Presenter getPresenter(Object o) {
                return new IconHeaderItemPresenter();
            }
        });
    }

    private void setupEventListeners() {
        setOnSearchClickedListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                //Intent intent = new Intent(getActivity(), SearchActivity.class);
                //startActivity(intent);
            }
        });

        setOnItemViewClickedListener(new ItemViewClickedListener());
        setOnItemViewSelectedListener(new ItemViewSelectedListener());
    }

    private void updateBackground(String uri) {
        int width = mMetrics.widthPixels;
        int height = mMetrics.heightPixels;

        RequestOptions options = new RequestOptions()
                .centerCrop()
                .error(mDefaultBackground);

        Glide.with(getActivity())
                .asBitmap()
                .load(uri)
                .apply(options)
                .into(new SimpleTarget<Bitmap>(width, height) {
                    @Override
                    public void onResourceReady(
                            Bitmap resource,
                            Transition<? super Bitmap> transition) {
                        mBackgroundManager.setBitmap(resource);
                    }
                });
    }

    private void startBackgroundTimer() {
        mHandler.removeCallbacks(mBackgroundTask);
        mHandler.postDelayed(mBackgroundTask, BACKGROUND_UPDATE_DELAY);
    }

    private void updateRecommendations() {
        Intent recommendationIntent = new Intent(getActivity(), UpdateRecommendationsService.class);
        getActivity().startService(recommendationIntent);
    }



    private class UpdateBackgroundTask implements Runnable {

        @Override
        public void run() {
            if (mBackgroundURI != null) {
                updateBackground(mBackgroundURI.toString());
            }
        }
    }

    private final class ItemViewClickedListener implements OnItemViewClickedListener {
        @Override
        public void onItemClicked(Presenter.ViewHolder itemViewHolder, Object item,
                                  RowPresenter.ViewHolder rowViewHolder, Row row) {

            if (item instanceof Video) {
                Video video = (Video) item;
                Intent intent = new Intent(getActivity(), VideoDetailsActivity.class);
                intent.putExtra(VideoDetailsActivity.VIDEO, video);

                Bundle bundle = ActivityOptionsCompat.makeSceneTransitionAnimation(
                        getActivity(),
                        ((ImageCardView) itemViewHolder.view).getMainImageView(),
                        VideoDetailsActivity.SHARED_ELEMENT_NAME).toBundle();
                getActivity().startActivity(intent, bundle);
            } else if (item instanceof String) {
                if (((String) item).contains(getString(R.string.guidedstep_first_title))) {
                    Intent intent = new Intent(getActivity(), GuidedStepActivity.class);
                    Bundle bundle =
                            ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
                                    .toBundle();
                    startActivity(intent, bundle);
                } else if (((String) item).contains(getString(R.string.error_fragment))) {
                    BrowseErrorFragment errorFragment = new BrowseErrorFragment();
                    getFragmentManager().beginTransaction().replace(R.id.movie_frame, errorFragment)
                            .addToBackStack(null).commit();
                } else if(((String) item).contains(getString(R.string.personal_settings))) {
                    Intent intent = new Intent(getActivity(), SettingsActivity.class);
                    Bundle bundle =
                            ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity())
                                    .toBundle();
                    startActivity(intent, bundle);
                } else {
                    Toast.makeText(getActivity(), ((String) item), Toast.LENGTH_SHORT)
                            .show();
                }
            }
        }
    }


    private void loadRows() {
        /* GridItemPresenter */
        IconHeaderItem gridItemPresenterHeader = new IconHeaderItem(0, "More", R.drawable.tv_animation_d);

        GridItemPresenter mGridPresenter = new GridItemPresenter();
        ArrayObjectAdapter gridRowAdapter = new ArrayObjectAdapter(mGridPresenter);
        /**
         gridRowAdapter.add(GRID_STRING_EXIT);
         gridRowAdapter.add(GRID_STRING_VIDEOS);

         gridRowAdapter.add(GRID_STRING_VERTICAL_GRID_FRAGMENT);
         gridRowAdapter.add(GRID_STRING_RECOMMENDATION);
         gridRowAdapter.add(GRID_STRING_SPINNER);
         **/
        mGridItemListRow = new CustomListRow(gridItemPresenterHeader, gridRowAdapter);
    }

    private void setRows() {
        mRowsAdapter = new CustumArrayObjectAdapter(new CustomListRowPresenter()); // Initialize

        if(mVideoListRowArray != null) {
            for (CustomListRow videoListRow : mVideoListRowArray) {
                mRowsAdapter.add(videoListRow);
            }
        }
        if(mGridItemListRow != null) {
            mRowsAdapter.add(mGridItemListRow);
        }

        /* Set */
        setAdapter(mRowsAdapter);

    }


    @Override
    public Loader<LinkedHashMap<String, List<Video>>> onCreateLoader(int id, Bundle args) {
        /* Create new Loader */
        Log.d(TAG, "onCreateLoader");
        if(id == VIDEO_ITEM_LOADER_ID) {
            Log.d(TAG, "create VideoItemLoader");
            //return new VideoItemLoader(getActivity());
            return new TvItemLoader(getActivity().getApplicationContext());
        }
        return null;
    }

    @Override
    public void onLoadFinished(Loader<LinkedHashMap<String, List<Video>>> loader, LinkedHashMap<String, List<Video>> data) {
        Log.d(TAG, "onLoadFinished");
        /* Loader data has prepared. Start updating UI here */
        switch (loader.getId()) {
            case VIDEO_ITEM_LOADER_ID:
                Log.d(TAG, "VideoLists UI update");

                /* Hold data reference to use it for recommendation */
                mItems = new ArrayList<Video>();

                /* loadRows: videoListRow - CardPresenter */
                int index = 1;
                mVideoListRowArray = new ArrayList<>();
                TvCardPresenter cardPresenter = new TvCardPresenter();

                if (null != data) {
                    for (Map.Entry<String, List<Video>> entry : data.entrySet()) {
                        ArrayObjectAdapter cardRowAdapter = new ArrayObjectAdapter(cardPresenter);
                        List<Video> list = entry.getValue();

                        for (int j = 0; j < list.size(); j++) {
                            Video movie = list.get(j);
                            cardRowAdapter.add(movie);
                            mItems.add(movie);           // Add movie reference for recommendation purpose.
                        }
                        IconHeaderItem header = new IconHeaderItem(index, entry.getKey(), R.drawable.tv_animation_d);
                        index++;
                        CustomListRow videoListRow = new CustomListRow(header, cardRowAdapter);
                        videoListRow.setNumRows(1);
                        mVideoListRowArray.add(videoListRow);
                    }
                } else {
                    Log.e(TAG, "An error occurred fetching videos");
                }

                /* Set */
                setRows();
        }
    }

    @Override
    public void onLoaderReset(Loader<LinkedHashMap<String, List<Video>>> loader) {
        Log.d(TAG, "onLoadReset");
        /* When it is called, Loader data is now unavailable due to some reason. */

    }



    private class GridItemPresenter extends Presenter {
        @Override
        public ViewHolder onCreateViewHolder(ViewGroup parent) {
            TextView view = new TextView(parent.getContext());
            view.setLayoutParams(new ViewGroup.LayoutParams(GRID_ITEM_WIDTH, GRID_ITEM_HEIGHT));
            view.setFocusable(true);
            view.setFocusableInTouchMode(true);
            view.setBackgroundColor(getResources().getColor(R.color.default_background));
            view.setTextColor(Color.WHITE);
            view.setGravity(Gravity.CENTER);
            return new ViewHolder(view);
        }

        @Override
        public void onBindViewHolder(ViewHolder viewHolder, Object item) {
            ((TextView) viewHolder.view).setText((String) item);
        }

        @Override
        public void onUnbindViewHolder(ViewHolder viewHolder) {

        }
    }

    private final class ItemViewSelectedListener implements OnItemViewSelectedListener {
        @Override
        public void onItemSelected(Presenter.ViewHolder itemViewHolder, Object item,
                                   RowPresenter.ViewHolder rowViewHolder, Row row) {
            // each time the item is selected, code inside here will be executed.
            if (item instanceof String) {                    // GridItemPresenter
                startBackgroundTimer();
            } else if (item instanceof Video) {              // CardPresenter
                startBackgroundTimer();
            }
        }
    }


}


Java:
public class MainActivity extends LeanbackActivity {

    // Init
    private Handler handler = new Handler();
    private Runnable runnable = new Runnable() {
        @Override
        public void run() {
            updateChannels();
            handler.postDelayed(this, 10000);
        }
    };


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        handler.postDelayed(runnable, 10000);

    }

    public void updateChannels(){

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(ApiInterface.JSONURL)
                .addConverterFactory(ScalarsConverterFactory.create())
                .build();

        ApiInterface api = retrofit.create(ApiInterface.class);

        Call<String> call = api.getString();

        call.enqueue(new Callback<String>() {
            @Override
            public void onResponse(Call<String> call, Response<String> response) {
                Log.i("Responsestring", response.body().toString());
                //Toast.makeText()
                if (response.isSuccessful()) {
                    if (response.body() != null) {
                        Log.i("onSuccess", response.body().toString());

                        String jsonresponse = response.body().toString();
                        chkResponse(jsonresponse);

                    } else {
                        Log.i("onEmptyResponse", "Returned empty response");//Toast.makeText(getContext(),"Nothing returned",Toast.LENGTH_LONG).show();
                    }
                }
            }

            @Override
            public void onFailure(Call<String> call, Throwable t) {

            }
        });

    }

    private void chkResponse(String response){

        try {
            //getting the whole json object from the response
            JSONObject obj = new JSONObject(response);
            if(obj.optString("update").equals("true"))
            {

                try {


                    Intent i = new Intent(MainActivity.this, MainFragment.class);
                    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(i);

                } catch (Exception e)
                {
                    Toast.makeText(this, "Error Refreshing Channel Rows.", Toast.LENGTH_SHORT).show();

                }

            }

        } catch (JSONException e) {
            e.printStackTrace();
        }

    }
}

Samsung warranty scam

Word of warning: don't ever buy a Samsung phone if you expect to be covered under the one year manufacturer's warranty. They will make up some excuse to not honor your repair!

This is my senario: Model No SM-J810GZKGINS, bearing Serial No- RZ8K70RFANE

I have a brand new Samsung J8 . after couples of months using learning some issues with the battery getting hot and I noticed some other minor issues that seemed to be hardware related. My phone is well within the manufacturer warranty.One day observed while using phone found many limning on phone screen , rush to Croma store. Croma store refer to Samsung service center and finally phone complete down .My phone never been dropped or been exposed to liquid in any way.

I sent it in for service center Feb 2019 , hoping that Samsung would either replace or repair my phone.I followed all the steps to send the phone in for repair, had to get a loaner phone for the time-being, and waited.

Samsung Service center technicians arrived along with Open phone and told that - my phone dipped in water and moniter and Motherboard get damaged and it's not covered under warrenty. They told look phone having water look look this way they are asking me ............... when I try to learn or observed water inside phone . I have not found and I ask where is water .. than service enginner told .. water dry and look this water mark , when i put my fingure on so called water , i observed that stickryness. when i told this is adhesive , they told go way and they wil not entertane this service under warrenty , untill pay Rs. 14800.00 and 4-5 technicians togahter and started fighting with me.
Bottom line is warranty is voided and I have no idea the condition the phone.

I registered complained with Samsung customer care - Firstly they are not ready to understand , somehow able to convince my request , they came back with oprion is , I have to pay Rs.14800.00 for service charges

I asked to customer service - for give prove that my phone dipped in water - they faild to prove at service center and customer service as well or convince , later customer experience manage started Negotiating to me for as a goodwill gesture.

Samsung customer experience team offering me 30% discount , later 40% discount after that 60% discount on repair service.

This process take 90 days and NOT ready to extend the warranty even to pay 40% charges.

After that Samsung customer service NOT replying email and I have no idea the condition the phone will be in when I get it back.

Upon finding this out I called Samsung to hopefully get a solution before they shipped my phone back. Well not surprisingly, I was told nothing could be done because the phone was now marked as having liquid damage. I even spoke with a supervisor and asked for proof of the damage in the form of photos but they refused. Now what do I do?

That's worse case scenario I guess, but still, do yourself a favor and buy an iPhone. At least they honor their warranty and don't make up damage claims they can't prove.
Super disappointed in Samsung india to Indian customers. Share this. Tell everyone you know.

SLAP : AI News APP

So what should you do to read fresh and breaking news at SLAP? There are two simple steps ◀️▶️

Swipe left if world and local news are interesting for you.
Swipe right if the content you see is not interesting for you.

Our artificial intelligence will feel you and learn in real time

And as soon as you like some fresh news from around the whole world, do not be silent!

Share News with your friends

Everything is very simple: you need to click the share button and select the source you want, let it be a social network or a favorite instant messenger. The more you share, the better your environment will be aware of what is interesting for you. Let them share too because you are as curious as they are.

★ Artificial Intelligence works for you

The more friends you invite, the better way artificial intelligence works personally for you. And if your interests coincide, then this can serve as a topic for a great kitchen conversation about hot tech news, or even become the beginning of a new romantic date.

↩️ Swipe, Read News and Share

Modern Internet has a lot of content that is delivered to you through millions of different sources. Every day you look at your feed of breaking news and you drown in the headlines. And you miss most of them because that is not what you really want to read!

⚡️News Application as your Personal Assistant

You go to the smart news app and see only actual and interesting news you like.

✔️ Do you prefer:
– World politics news;
– Hot Tech News;
– Sports news?
Our artificial intelligence will pick you exactly these topics!

But the miracle is that you do not need to subscribe to the loved sources of your preferences. After all, there could be an infinite amount of your interests and the number of categories may be insufficient.


News from Various Countries

You will get local news in the language that is mostly used in your country. But if you suddenly set off on a journey, wish to move abroad, or just want to read breaking news from another country and news in a foreign language, you can always choose what you wish in the settings.

Just News Headlines

Nowadays, people don’t read the full text of the news articles or even a brief description. But the king of the hill is the title at the moment. 5 -10 words are the amount of information that the average user is ready to pick up.

Slap gives an opportunity to the consumers who read the headlines that are interesting to them. You can read all the famous sources that are broadcasting fresh local news within your country in a language that is convenient for you. Get hot headlines about everything you adore, react and share.

★ Artificial Intelligence Shows Best Results

Artificial Intelligence technologies will show you the best personal results. And if you want to get deeply acquainted with this or that information, you can always click Learn more button and go to the original source without leaving Slap, thanks to the in-app browser.

♛ Your News Timeline is Your Choice

One interesting observation: your social circle chooses what you see in the social media timeline. Sometimes it can be frightening, offensive or just uninteresting. Surround yourself only with your own hobbies with Slap news application, and thanks to the self-learning artificial intelligence, that selection of personalized content will amaze you with its accuracy from day to day. In simple words, if you want to create a positive news feed for yourself, do it by yourself.

◀️▶️ Swipe News Left and Right

Swipe simple ways of your finger, look like the movements of a magic wand. Because they are able to set your attitude and brighten up the time you spend on the Internet. And in addition, try to look at your news feed and interests from a different angle. Yes, exactly.

Download SLAP.ai from Play Store

Phone Heating

So one time I left my device (Lenovo A6020a40) on to charge without the screen turning off my internet data was also running next morning the battery was totally drained to 6%. After this the battery drains and heats up when the device is idle I have factory reset it it still persist .Should I change the battery and charger .

Root [ROM][UNOFFICIAL] Lineage 15.1 for J7 Prime SM-G610F

Lineage 15.1 for J7 Prime SM-G610F

This isn't technically my original creation, I just made a newer build of something someone else already started but has since given up on. Either way though I figured I'd mirror it here so it can reach a wider audience. This is Lineage 15.1 for the J7 Prime, SM-G610F variant. If you try to flash this on something else that's not the SM-G610F variant you'll probably have a bad time

As always I am not responsible for what you choose to do to your own phone. Flashing mods like this may void your warranty. Don't come breaking down my door at 2AM if flashing this causes some problem on your device

Please note too that I don't actually own this phone, this was a blind build by me for a friend that has this. I was just going to give him the updated ROM zip but then I figured I'd post it up here for anyone else that wants to use it as well. So be warned that I can't actually test & confirm this works myself (and my friend hasn't flashed it yet either as of me writing this message) so I can't say for certain that it'll work. I'm 99.99% sure it'll work though and I have no reason to BELIEVE it won't, I just can't say for certain yet until him or someone else lets me know

WHAT WORKS:
  • Should be pretty much everything (going off the old ROM build by the original creator)
WHAT DOESN'T WORK:
  • My friend that used the old build told me before that his phone would sometimes best up and apps that shouldn't be slow were really slow (Reddit and Clash Royale namely). But again those were from the old original builds, hopefully this upstreamed one I made is better and fixes some stuff
  • You tell me, since I don't actually have the phone myself
SOURCE CODE:
ROM DOWNLOAD:
SPECIAL THANKS TO:
  • Lineage OS for being there for you, even when the rain starts to pour
  • Everyone in that Exynos7870 github group, because making functioning trees for an exynos chipset is no easy task... yet they actually pulled it off!
  • XDA user DarkLord1731. Again, these builds were originally his, but his last build was from December of last year. By this point I can reasonably assume he has moved onto newer projects (it looks like he's working on Lineage 16 for this phone now, check it out here) and won't be making builds of this anymore--therefore I took the source and made my own version of his original idea, albeit with newer security patches and upstream fixes. Give him the credit for the original idea. He very clearly did this first, he deserves all the real credit!!!!

Filter

Back
Top Bottom