Search code examples
androidandroid-wifiandroid-dialogandroid-facebook

Facebook app type no internet connection message


How can I show no internet connection message like in facebook app that appears below the tab view.

Facebook message


Solution

  • You can design this in your XML file and then set its visibility to invisible like this:

    <RelativeLayout
        android:id="@+id/relativelayout_connection"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:alpha="0.8"
        android:background="@android:color/black" >
    
        <TextView
            android:id="@+id/textView_noInternetConnection"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:layout_centerInParent="true"
            android:text="No Internet Connection."
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@android:color/white" />
    
        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/textView_noInternetConnection"
            android:layout_alignParentTop="true"
            android:layout_toLeftOf="@+id/textView_noInternetConnection"
            android:src="@drawable/warrning" />
    </RelativeLayout>
    

    In your code use the broadcast receiver like this:

    private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            boolean noConnectivity = intent.getBooleanExtra(
                    ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
            /*String reason = intent
                    .getStringExtra(ConnectivityManager.EXTRA_REASON);*/
            boolean isFailover = intent.getBooleanExtra(
                    ConnectivityManager.EXTRA_IS_FAILOVER, false);
    
            @SuppressWarnings("deprecation")
            NetworkInfo currentNetworkInfo = (NetworkInfo) intent
                    .getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
            // NetworkInfo otherNetworkInfo = (NetworkInfo)
            // intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);
    
            if (noConnectivity){    
                if(mRelativeLayout != null)
                mRelativeLayout.setVisibility(View.VISIBLE);
    
            }
            else if (currentNetworkInfo.isConnected()) {
                mRelativeLayout.setVisibility(View.GONE);
    
    
            } else if (isFailover) {
                Toast.makeText(getApplicationContext(), "Failover",
                        Toast.LENGTH_LONG).show();
            } else {
                mRelativeLayout.setVisibility(View.GONE);               
            }
        }       
    };